您知道是否可以将输入文本与图像合并?
答案 0 :(得分:1)
可能是指像此示例的图像视图,您可以在列表中添加图标
经典的Android ListView是一个简单的文本列表 - 但却没有吸引力。基本上,我们 将ListView中的一堆单词放在一个数组中并告诉Android使用一个简单的内置函数 将这些单词写入列表的布局。 但是,我们可以有一个列表,其行由图标,图标和文本组成,检查 盒子和文字,或者我们想要的任何东西。这只是提供足够数据的问题 适配器并帮助适配器为每一行创建更丰富的View对象。 例如,假设我们想要一个ListView,其条目由一个图标组成, 然后是一些文字。我们可以为找到这样的行构建一个布局 在FancyLists / Static示例项目的res / layout / row.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
/>
</LinearLayout>
此布局使用LinearLayout设置一行,左侧是图标,文本为(in 右边是一个漂亮的大字体。 但是,默认情况下,Android不知道我们要将此布局与我们一起使用 列表显示。要建立连接,我们需要为Adapter提供资源ID 之前显示的自定义布局:
public class StaticDemo extends ListActivity {
private TextView selection;
private static final String[] items={"lorem", "ipsum", "dolor",
"sit", "amet",
"consectetuer", "adipiscing", "elit", "morbi", "vel",
"ligula", "vitae", "arcu", "aliquet", "mollis",
"etiam", "vel", "erat", "placerat", "ante",
"porttitor", "sodales", "pellentesque", "augue", "purus"};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>(this,
R.layout.row, R.id.label,
items));
selection=(TextView)findViewById(R.id.selection);
}
public void onListItemClick(ListView parent, View v,
int position, long id) {
selection.setText(items[position]);
}
}
这遵循以前的ListView示例的一般结构。关键的区别 这是我们告诉ArrayAdapter我们想要使用我们的自定义布局 (R.layout.row)并且单词应该去的TextView被称为R.id.label 在该自定义布局中。 注意:请记住,要引用布局(row.xml),请使用R.layout作为基础上的前缀 布局XML文件的名称(R.layout.row)。 结果是一个ListView,左侧有图标;在这个例子中,所有的图标都是 同样,如图13-1所示。