Android 如何在自定义BaseAdapter中使用intent
我有两个活动-MainActivity和ListresultActivity。在ListresultActivity中,我为listView使用了一个自定义适配器。但是对于列表中的每一行,我都有一个按钮,我想使用它返回到使用intent的main活动。如何在onclick中使用setResult(RESULT\u OK,intnt)和finish() 代码如下: main活动:Android 如何在自定义BaseAdapter中使用intent,android,listview,android-intent,Android,Listview,Android Intent,我有两个活动-MainActivity和ListresultActivity。在ListresultActivity中,我为listView使用了一个自定义适配器。但是对于列表中的每一行,我都有一个按钮,我想使用它返回到使用intent的main活动。如何在onclick中使用setResult(RESULT\u OK,intnt)和finish() 代码如下: main活动: int request_code = 1 public void onActivityResult(int reque
int request_code = 1
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == request_code)
{ if (resultCode == RESULT_OK)
{ //Toast. makeText(this,data.getData().toString(), Toast.LENGTH_SHORT).show();
Student aStu = (Student)data.getSerializableExtra("studentObj");
}
}
}
ListResultActivity(第二个活动,我正在使用listview和我自己的sipleBaseAdapter自定义类):
SimpleBaseAdapter类(baseAdapter的自定义类):
您可以使用与现在相同的方法使用
setResult
,但要完成活动,请使用以下行:-
((活动)adapterContext.finish()代码>
在这里,我假设adapterContext
是通过ListresultActivity
传递的上下文,您已经为其设置了适配器。使用intent with putExtra来管理条件/将数据传递给主活动不是您实现的备选方案?setResult(RESULT\u OK,intnt);显示错误-创建局部变量/consatnt/field/parameter@user2751449我认为您尚未创建任何名为RESULT\u OK
的变量,请创建一个变量或尝试将RESULT\u OK
替换为整数1
。这可能有用。
protected void onCreate(Bundle savedInstanceState)
{
SimpleBaseAdapter datatHolder = new SimpleBaseAdapter(this, studentList);
myList.setAdapter(datatHolder);
}
public class SimpleBaseAdapter extends BaseAdapter
{ @Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) adapterContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.adapter_listrowitem, parent, false);
Button btnBack = (Button) rowView.findViewById(R.id.listRw_btnBk);
final Student student = studentDataHolder.get(position);
if (student != null) {
btnBack.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intnt = new Intent(adapterContext,MainActivity.class);
intnt.putExtra("studentObj", student);
//setResult(RESULT_OK, intnt);
//ListResultActivity.this.finish();
}
});
}
return rowView;
}