我对整个android场景都是相当陌生的,所以请容忍我。我正在尝试创建一个类似于首选项按钮的按钮布局,但我似乎无法让它正常工作。要将我的问题可视化,请看一看
at this image!
我想创建像这样的按钮,与图像和所有,提前感谢。
发布于 2011-08-07 22:14:24
不要使用按钮。在您的活动中使用一个ListView,它为每一行使用一个LinearLayout;LinearLayout (设置为horizontal)依次包含图像和文本。正如PravinCG所说,要填充列表,您需要使用一个自定义的ListAdapter。使用OnItemClickListener执行操作。
即:主布局:
<ListView android:id="@+id/android:list" android:layout_height="wrap_content"
android:layout_width="match_parent"></ListView>row_layout:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:layout_width="wrap_content" android:id="@+id/imageView1"
android:src="@drawable/addevent" android:layout_height="wrap_content" android:layout_gravity="right"></ImageView>
<TextView android:id="@+id/textView1" android:text="TextView"
android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_height="wrap_content" android:layout_gravity="center_vertical"> </TextView>
</LinearLayout>在你的activity中创建一个新的适配器(扩展行)--这段代码假设你对每个“ListActivity”(=行)都有一个"YourButtonClass“类的实例:
class ButtonRowAdapter extends BaseAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v= convertView;
if (v == null) {
LayoutInflater vi= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v= vi.inflate(R.layout.row_layout, null);
}
YourButtonClass c= getItem(position);
((ImageView) v.findViewById(R.id.imageView1)).setImageResource(c.getImage());
((TextView) v.findViewById(R.id.textView1)).setText(c.getText());
return v;
}
@Override
public int getCount() {
return <"button" count>;
}
@Override
public Object getItem(int position) {
return <"button" at position position>;
}
@Override
public long getItemId(int position) {
return 0;
}
}最后,在onCreate()中实例化它并添加一个侦听器。
fButtonRowAdapter= new ButtonRowAdapter(this);
setListAdapter(fButtonRowAdapter);
getListView().setOnItemClickListener(...);这就对了。
https://stackoverflow.com/questions/6973092
复制相似问题