我有2项活动 - MainActivity& ListresultActivity。在ListresultActivity中,我使用了listView的自定义适配器。但是对于列表中的每一行,我都有一个按钮,我想用它来使用intent返回MainActivity。我如何在onclick中使用setResult(RESULT_OK,intnt)和finish()?
这是代码: 的 MainActivity:
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自定义类):
protected void onCreate(Bundle savedInstanceState)
{
SimpleBaseAdapter datatHolder = new SimpleBaseAdapter(this, studentList);
myList.setAdapter(datatHolder);
}
SimpleBaseAdapter类(baseAdapter的自定义类):
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;
}
答案 0 :(得分:4)
您可以使用setResult
与现在相同的方式,但对于完成活动,请使用以下行: -
((Activity)adapterContext).finish();
在这里,我假设adapterContext
是您为Context
传递的ListresultActivity
已为其设置了适配器。