2014-02-07 2 views
-1

나는 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; 

} 
+0

조건을 관리하기 위해 putExtra를 사용하여 의도를 사용하거나 주 활동으로 데이터를 전달하는 것이 대안이 아닙니까? – user2450263

답변

4

당신은 활동을 마무리 사용이 행 다음에 당신이 지금하고있는대로 setResult 같은 방법을 사용하지만, 수 -

((Activity)adapterContext).finish();

를 자, 내가 adapterContext가 전달 된 Context 것으로 가정했습니다 에 의해 ListresultActivity 어댑터를 설정했습니다.

+0

setResult (RESULT_OK, intnt); 로컬 변수/consatnt/field/parameter를 생성 중입니다. – shaon007

+0

@ user2751449 'RESULT_OK'라는 이름의 변수를 생성하지 않았거나,'RESULT_OK'를 정수 '1'로 바꾸어보십시오. 이것은 효과가있을 수 있습니다. – DroidDev

관련 문제