对不起,如果这对其他人来说是显而易见的,但我在理解如何在listview中显示html方面遇到了一些小麻烦.
我的列表视图已声明.
ListView lv1 = (ListView) findViewById(R.id.ListView01);
Run Code Online (Sandbox Code Playgroud)
我填充它(未显示)然后使用ArrayAdapter设置我的listview.
lv1.setAdapter(new ArrayAdapter<String>(SearchByFood.this, R.layout.new_list_view, foods));
Run Code Online (Sandbox Code Playgroud)
再往下我创建了一个新的字符串数组,我希望在其中加入粗体标记.然后我将这个新数组(称为arr_sort)添加到arrayadapter中,并使用onTextChanged()方法.
lv1.setAdapter(new ArrayAdapter<String>(SearchByFood.this, R.layout.new_list_view, arr_sort));
Run Code Online (Sandbox Code Playgroud)
现在,我的新字符串数组中包含<b>标签.如何使listview显示粗体文本?
这是我的new_list_view
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/grey2"
android:textSize="20sp"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="40dip"
/>
Run Code Online (Sandbox Code Playgroud)
这是我的主要布局中的ListView部分.
<ListView
android:id="@+id/ListView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corners_green"
android:cacheColorHint="#00000000"
android:divider="@color/green6"
android:dividerHeight="1px"
android:fastScrollEnabled="true" >
</ListView>
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
因此,android不遗余力地为每个人构建这个漂亮的UI指南.但我没有看到任何地方显示如何构建这些元素的代码示例.
可在此处找到选项卡的UI准则.http://developer.android.com/design/building-blocks/tabs.html.
有谁知道如何创建像这样的标签?
任何帮助将不胜感激,谢谢.
解决方案张贴
好了,所以这就是我最后做的事情,可能是浪费了大约10个小时试图做出一些好看的标签.
首先,我废弃了使用android的tab实现的整个想法.出于一个原因,选项卡主机小部件被假定为操作栏不推荐使用,但操作栏仅适用于Android 3.
我终于弄清楚,如果使用线性布局并作为线性布局的背景,我会放置我想要使用的图像(使用9个补丁图像).然后创建另一个linearlayout和textview,以便将文本放在该linearlayout的顶部.然后使您的线性布局可点击.然后,当您获得更高级时,您可以使线性布局背景成为xml选择器,您很高兴.如果你没有得到所有这些是我的代码.
的LinearLayout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="@color/main_screen_bg_color"
android:orientation="horizontal"
android:padding="2dp" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/selector_not_current"
android:clickable="true"
android:onClick="onClickSub"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Example 1"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/selector_current"
android:clickable="true"
android:onClick="onClickFoodDetails"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:text="Example 2"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
示例选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android"> …
Run Code Online (Sandbox Code Playgroud) 我正在按照这里的教程进行操作.但我继续使用与android:groupindicator相关的XML代码出错.
这是相关的xml.
<LinearLayout
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingTop="70dp" >
<expandablelistview
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:groupindicator="@drawable/group_indicator" >
<textview
android:id="@+id/android:empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/main_no_items" >
</textview>
</expandablelistview>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
确切的错误如下.
[2012-03-21 21:51:44 - FoodSubs] C:\.......res\layout\food_display.xml:55: error: No resource identifier found for attribute 'groupindicator' in package 'android'
Run Code Online (Sandbox Code Playgroud)
我已经多次检查了一切,但我没有运气.我相信它会显而易见,但任何帮助都会受到赞赏.
好的,我正在开发一个应用程序,其中包含一个包含listview和顶部的edittext框的页面.当您在edittext框中键入内容时,它将过滤列表视图中显示的项目.我遇到的问题是滑块侧面出现的快速滚动图标.
当页面首次加载无关紧要时,快速滚动滑块图标将不会出现在屏幕上.然后我单击编辑文本框并键入一个字符,然后将其删除,现在我的快速滚动滑块图标将出现.
首先加载没有快速滚动图标.
出现Edittext框,然后删除文本和快速滚动图标.
我在listview中设置了android:fastScrollEnabled ="true".另外,我通过执行lv1.setFastScrollEnabled(true)在代码中手动设置它;
无论我改变我仍然得到相同的行为,除非我从代码和xml中删除它完成然后它将停止在第二页上工作.我试过清理我的项目但仍然没有好处.我倾向于它是android中的一个bug或者我错过了一些非常简单的东西.
这是我的代码.
public class SearchByFood extends ParentClass
{
private ListView lv1;
private EditText ed;
int textlength = 0;
private ArrayList<String> arr_sort = new ArrayList<String>();
private ArrayList<String> foods = new ArrayList<String>();
private LayoutInflater mInflater;
private ArrayList<Food> foodList;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.search_by_food);
setTextTitle("Search by Food");
lv1 = (ListView) findViewById(R.id.ListView01);
ed = (EditText) findViewById(R.id.EditText01);
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
DataLayerFunctions d = new DataLayerFunctions(getApplicationContext());
foodList = d.selectFoodsWithSubstitutes();
for (Food f : foodList)
{
// …
Run Code Online (Sandbox Code Playgroud)