我是一名新的Android开发人员。我创建了一个测验应用程序,我需要在列表视图中连续显示问题。我的所有问题和选择都是图像。如何在列表视图中设置图像。我想只在列表视图中设置图像而不是任何文本。请帮帮我。
答案 0 :(得分:2)
在主xml文件中创建一个listview,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/masterLayout"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/list"
android:cacheColorHint="#00000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
然后创建另一个名为child_layout的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
然后在您的活动类中初始化您的列表视图:
ListView listView1 = (ListView)findViewById(R.id.list);
创建一个扩展baseadapter的类,并以您需要的方式修改所有必需的方法(创建将drawable列表作为参数并创建一个设置为提供列表的全局变量的构造函数)。然后在您的活动类中执行以下操作:
ArrayList<Drawable> images = new ArrayList<Drawable>();
// add to the list here
CustomListAdapter adapter = new CustomListAdapter(images);
listView1.setAdapter(adapter);
在customlistadapter类的getView()函数中执行此操作:
public View getView(int position, View convertView, ViewGroup parent)
{
Drawable image = images.get(position);
if (convertView == null)
{
LayoutInflater infalInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.child_layout, null);
}
ImageView imageView = (ImageView)convertView.findViewById(R.id.image);
imageView.setBackgroundDrawable(image);
return convertView;
}
ListView项目单击侦听器:
listView1.setOnItemClickListener(new ListView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> listView, View itemView, int position, long itemId)
{
String message = "example text: " + position;
Toast.makeText(MyActivity.this, message, Toast.LENGTH_SHORT).show();
}
});
答案 1 :(得分:0)
您需要创建自定义ListAdapter。 API samples中给出了一个示例。只需添加一个ImageView作为自定义适配器的布局,你就应该开始了。搜索更多示例。
答案 2 :(得分:0)
获取一个主要布局xml文件,你必须在其中给出。 像这样的东西
<List
android:width="wrap_content"
android:height="wrap_content"
android:id="@+id/list"
/>
并使用
获取另一个布局xml文件<ImageView
android:width="wrap_content"
android:height="wrap_content"/>
在适配器中膨胀包含ImageView的此xml文件。这样你就可以在列表中获得图像
答案 3 :(得分:0)
look at this tutorial...并将textview替换为图像视图并将图像设置为它。
also have a look at this question...
希望这会有所帮助。
感谢。