我正在学习如何在自定义适配器列表视图中使用resultActivity更改单个项目。它是如何工作的?
这是我在自定义适配器列表视图中的startActivityForResult时的代码
holder.isi_layout.setOnClickListener(new android.view.View.OnClickListener(){
public void onClick(View v)
{
Intent i = null;
i = new Intent(activity, DetailLaporanActivity.class);
Bundle b = new Bundle();
b.putString("position", Integer.toString(position));
i.putExtras(b);
activity.startActivityForResult(i, mRequestCode);
activity.overridePendingTransition (R.anim.push_left_in, R.anim.push_left_out);
}
});
和这个OnResultActivity
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==mRequestCode) {
if(resultCode == RESULT_OK){
String position = data.getStringExtra("position");
String status_favorite = data.getStringExtra("status_favorite");
String jumlah_favorite = data.getStringExtra("jumlah_favorite");
String jumlah_komentar = data.getStringExtra("jumlah_komentar");
}
Toast.makeText(getApplicationContext(), "This code Success get Result", Toast.LENGTH_LONG).show();
}
}
当我在适配器中放入OnResultActivity时,代码是错误的, RESULT_OK 得到通知无法解析为变量,
但如果我放入MainActivity,这不是错误但不是获得值结果,我检查 Toast.makeText(getApplicationContext(),“此代码成功获取结果”,Toast.LENGTH_LONG)。show(); 但没有吐司,....
有人帮帮我吗?它是如何工作的? 抱歉,我的英文......答案 0 :(得分:3)
您添加了未解析的RESULT_OK,因此您应该在DetailLaporanActivity.class
中设置它。
public class DetailLaporanActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setResult(RESULT_OK);
}
}
并且您可以在onActivityResult
方法中使用RESULT_OK。
答案 1 :(得分:2)
这是因为RESULT_OK是Activity类的常量。因此,您需要在Adapter类中对其进行限定:
Activity.RESULT_OK