2011-08-27 4 views
0

2 개의 활동이 있습니다. 활동 A와 B를 말하십시오. 주 활동 (A)에는 2 개의 버튼이 있습니다. 버튼 1을 클릭하면 다른 활동이 시작됩니다. 두 번째 작업 (B)에서는 문자열 배열을 사용하여 사용자 지정 목록 항목을 채우는 listview를 만듭니다.Android Listview를 채우기 위해 클릭 한 버튼을 결정하십시오.

이제 활동 A의 단추 2를 클릭하면 활동 B의 동일한 코드를 사용하여 목록보기를 채우고 다른 문자열 배열을 사용하려고합니다. 어떻게해야합니까? ListView의 문자열 arryay를 대체하기위한 또 다른 액티비티를 만들고 싶지 않습니다.

/* 활동 A/

public class mainmenu extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 


Button button1 = (Button) findViewById(R.id.Button01); 
button.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
     // Perform action on click 

Intent i = new Intent(getApplication(), ActivityB.class); 
startActivity(i); 
    }); 


Button button2 = (Button) findViewById(R.id.Button02); 
button1.setOnClickListener(new View.OnClickListener() { 
public void onClick(View v) { 
    Intent i = new Intent(getApplication(), ActivityB.class); 
     startActivity(i); 


    } 
    }); 

/* 활동 B 형 * * **

public class anotheractivity extends ListActivity { 




public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 

    String[] names = getResources().getStringArray(R.array.heading_name); 
    String[] descr = getResources().getStringArray(R.array.heading_desc); 
    this.setListAdapter(new myArrayAdapter(this, names, descr)); 
    ListView lv = getListView(); 

    Resources res = getResources(); 

    Drawable sm = res.getDrawable(R.drawable.mydivider); 


    lv.setDivider(sm); 
    lv.setDividerHeight(1); 
} 

답변

0

당신은 putExtra를 사용하여 활동 B에 데이터를 전달할 수 있습니다. 좋은 예를 보려면 this 질문을 참조하십시오. 당신의 활동 B에서는이 데이터를 얻고, 전달 된 내용에 따라 목록을 채울 수 있습니다

을 활동 A를 들면 다음과 같습니다. 당신이에서 onCreate에서 같은 것을 할 것입니다 활동 B에 대한

Intent i = new Intent(ActivityA.this, ActivityB.class); 
i.putExtra("arrayToUse", 1); 
startActivity(i); 

:

Bundle extras = icicle.getExtras(); 
int whichArrayToUse = extras.getInt("arrayToUse"); 
관련 문제