나는 2 개의 액티비티 - MainActivity & ListresultActivity가 있습니다. ListresultActivity에서 listView에 대한 사용자 지정 어댑터를 사용했습니다. 하지만 목록의 각 행에 대해 MainActivity를 사용하여 의도로 돌아가는 데 사용하려는 버튼이 있습니다. onclick 내부에서 setResult (RESULT_OK, intnt) 및 finish()를 어떻게 사용합니까? MainActivity : 여기 사용자 정의 BaseAdapter 내부에서 인 텐트를 사용하는 방법
코드입니다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 (2 활동, 나는리스트 뷰 내 자신의 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;
}
조건을 관리하기 위해 putExtra를 사용하여 의도를 사용하거나 주 활동으로 데이터를 전달하는 것이 대안이 아닙니까? – user2450263