2011-07-02 25 views
0

發送putExtra()的活動ListView具有動態意圖,可在每次調用時更改TextView和WebView

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
    super.onListItemClick(l, v, position, id); 
    final Intent intent = new Intent(); 
    // Set up different intents based on the item clicked: 
    switch (position) 
    { 
     case ACTIVITY_0: 
      intent.putExtra("Value1", "Display this text!"); 
      intent.setClass(this, com.a.someclass.class); 
} 
    startActivityForResult(intent, position); 
} 

活動接收putExtra()

@Override 
protected void onCreate(Bundle bundle) { 
    // TODO Auto-generated method stub 
    super.onCreate(bundle); 
    setContentView(R.layout.information); 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null) { 
     return; 
    } 
    String value1 = extras.getString("Value1"); 

    if (value1 != null) { 
     informationTitle = (TextView)findViewById(R.id.informationTitle); 
     informationText = (WebView)findViewById(R.id.informationText); 
     informationTitle.setText(value1); 
    } 

原始消息:

我一直在尋找一個好的關於這方面的教程,我已經在網上發佈了我的代碼,所以人們可以查看它,但沒有找到我需要的幫助。

我是新手,我基本上要做的只是有一個項目列表,這些項目都鏈接到一個類,它有一個動態TextView,用於標題和WebView的內容,和所以基本上當在列表上單擊一個項目時,它將打開新的活動/意圖,並且它還將傳遞參數以相應地更改TextView和WebView。

我知道如何通過爲列表中的每個項目創建一個新類來打開一個新的活動,但我很確定有一種更簡單的方法,我可以重用一個類,只是不斷更改TextView和WebView。我說這個的原因是因爲我的名單上有15個項目,但是這會擴展加班,所以我不想做50-60個不同的課程來打開每個新項目。

如果有人可以指出我正確的教程或在這裏給我一些見解我真的很感激它!

謝謝你

回答

1

爲了實現這個目標,你會的,而是採用了不同Intent每個列表項,請使用相同的Intent調用相同的Activity,但請隨附額外附件。

比方說,例如,您想通過一個不同的String取決於哪個列表項被點擊。你會想

myIntent.putExtra(String key, String value); 
startActivity(myIntent); 

您從這個IntentActivity然後就能使用

Bundle extras = getIntent().getExtras(); 

搶在其onCreate()這些額外並訪問您在Intent投入使用的方法的演員概述了here。這樣,您可以對所有列表項目使用單個Activity,但Activity會根據額外值顯示不同的信息。

+0

非常感謝,今晚我會試試這個! – utamanna

+0

我還沒有能夠得到這個工作,當我嘗試改變一個TextView它告訴我改變putExtra類到別的東西。 – utamanna

+0

putExtra「class?」使用更新後的代碼編輯原始問題可以幫助我瞭解您正在談論的內容。 –