我有一個ListView,我用SimpleCursorAdapter填充。對於我列表中的每個項目,按照以下順序:TextView> RatingBar> TextView> ImageView。我想補充的ImageView的一個按鈕,但我不知道如何將這種...SimpleCursorAdapter中的按鈕
我在哪裏填充ListView:
adapter = new SimpleCursorAdapter(this, R.layout.beerdrunk, cursor,
new String[] { "beers", "notes", "numbers" }, new int[] {
R.id.champName, R.id.champNote, R.id.champDrunk });
adapter.setViewBinder(binder);
list = (ListView) findViewById(R.id.listMyBeers);
list.setItemsCanFocus(true);
list.setOnItemClickListener(onClickBeer);
list.setAdapter(adapter);
的OnItemClickListener:
private OnItemClickListener onClickBeer = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
System.out.println(""+ arg0);
System.out.println(""+ arg1);
System.out.println(""+arg2);
Intent newActivity = new Intent(MyBeers.this, DetailsBeer.class);
newActivity.putExtra("com.example.checkmybeer.DetailsBeer", ""
+ arg3);
startActivityForResult(newActivity, 0);
}
};
和XML的beerdrunk:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/champName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="130"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:maxLines="3"
android:padding="5dp"
android:paddingRight="20dp"
android:singleLine="false"
android:text="@string/beerBook"
android:textColor="@color/black1"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<View
android:layout_width="1.5dip"
android:layout_height="fill_parent" />
<RatingBar
android:id="@+id/champNote"
style="@style/beerRatingSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:isIndicator="true"
android:numStars="5"
android:layout_margin="1.5dp"
android:rating="5"
android:stepSize="0.10" >
</RatingBar>
<View
android:layout_width="1.5dip"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/champDrunk"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="30"
android:gravity="right|center_vertical"
android:padding="5dp"
android:layout_marginLeft="5dp"
android:text="200"
android:textColor="@color/black1"
android:textSize="20sp"
android:textStyle="bold" />
<View
android:layout_width="1.5dip"
android:layout_height="fill_parent" />
<ImageView
android:id="@+id/champPlusone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:layout_margin="5dp"
android:layout_weight="30"
android:gravity="right|center_vertical"
android:clickable="false"
android:src="@drawable/plus2" />
</LinearLayout>
我已經試過類似:
if(arg2 instanceof ImageView){
//do some stuff
}
但它不工作...我怎麼能知道哪些視圖被點擊我的「行」裏面?
「我怎麼知道我的」行「裏面點擊了哪個視圖?」您需要創建一個自定義適配器並在每個視圖中設置您想要執行特殊操作的OnClickListeners。 – Sam 2013-02-28 22:37:24
快速問題,爲什麼你想添加一個按鈕到你的列表視圖?與只讓用戶點擊行本身相反? – 2013-02-28 22:38:56
@BrentHronik我假設作者希望RatingsBar做一件事,按鈕做另一件事,可能是行本身做不同的事情。 – Sam 2013-02-28 22:41:34