我对整个机器人场景都很陌生,所以请耐心等待。我正在尝试创建一个像偏好按钮一样的按钮布局,但我似乎无法让它正常工作。想象一下我的问题,看一看 at this image!
我想创建像这样的按钮,图像和所有,提前感谢。
答案 0 :(得分:0)
不要使用按钮。在活动中使用ListView,每行使用一个LinearLayout; LinearLayout(设置为水平)依次包含图像和文本。为了填写列表,您可以使用PravinCG所说的自定义ListAdapter。使用OnItemClickListener进行操作。
I.e。:主要布局:
<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>
在您的活动中创建一个新的适配器(扩展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(...);
你去。