我有一個包含textview,複選框和imageview的自定義列表視圖。如果選中複選框,則textview和imageview將會顯示。當我點擊textView時,我會拍照並在imageview中顯示。因爲我不能在適配器中調用onActivityResult,所以我在Activity中調用它,並且我希望將ListView中的對象的位置從適配器發送到活動,但它發送的錯誤是我在MainActivity中收到的位置爲null。那麼,我該如何解決這個問題?如何在自定義列表視圖中捕獲和顯示圖像
這裏是我的.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:paddingRight="10dp"
android:paddingLeft="16dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_instore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:layout_centerVertical="true"
android:text="Product"
android:textSize="14sp"
android:layout_weight="1"/>
<CheckBox
android:id="@+id/chk_instore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_weight="1"
android:checked="false"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:paddingTop="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Capture"
android:visibility="invisible"
android:id="@+id/txtCapture"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/img1"
android:layout_weight="1"
android:paddingTop="5dp"
android:visibility="invisible"/>
</LinearLayout>
這裏是適配器:
txtCapture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_CAMERA)) {
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra("position",position);
((Activity) mContext).startActivityForResult(i, 100);
}
}
});
這是我在MainActivity onActivityResult():
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==100&&resultCode==RESULT_OK){
Bitmap b = (Bitmap)data.getExtras().get("data");
int position = (int)data.getExtras().get("position");
POSMQty p = arrPOSMInstore.get(position);
p.setBitmap(b);
}
}
那麼,我可以在我的活動中獲得位置嗎? – sss1
爲你編輯我的答案。 Upvote並標記正確,如果有幫助。 –