2010-12-18 118 views
1

當我試圖做到這一點時,我非常困惑:Android開發:傳遞信息

可以說我想構建一個應用程序,讓您閱讀關於動物的信息。

在我的主類,我有一個列表視圖,其項目:貓,狗,蛇,兔等。

如果我點擊示例狗我的其他類和我的其他layout.xml會彈出。在這個details.xml佈局中有一個Header文本,一張圖片和一個主文本。

然而,文本是空的或沒有。那麼,我該如何做,文字會發生變化取決於我點擊哪個項目。

例如我不想在按下兔子項目時關於貓和貓圖片的文本。

這可能嗎?我試圖調用方法,但我只是得到一個FC,如果方法不在當前類中。我也嘗試了額外的意圖,但那次嘗試沒有順利。

謝謝! 你的朋友; d

回答

2

如果我點擊例如狗我的其他類 和我的其他layout.xml會彈出

我想你已經實現了onListItemClick

protected void onListItemClick(ListView l, View v, int position, long id)

此方法有一個id,您可以添加它以意圖發送到下一個活動以知道哪個行(哪個項目)被點擊過。

因此,在下一個活動中,您將獲得正確的layout.xml,並根據收到的信息取決於id

編輯

假設MyFirstActivity是您的列表活動:

public class MyFirstActivity extends ListActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listview); 
     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] {"Hello","World","Foo","Bar"})); 

    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) {  
     super.onListItemClick(l, v, position, id); 
     Intent intent = new Intent(this,MySecondActivity.class); 
     intent.putExtra("id",id); 
     startActivity(intent); 
    } 
} 

然後,在onListItemClick,它發送一個意圖MySecondActivityid作爲額外的,我可以檢索並獲得根據它的信息

public class MySecondActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     Long lngId = getIntent().getExtras().getLong("id"); 
     Integer id = lngId.intValue(); 
     String message = null;  

     switch(id) { 
      case 0: 
       message = "Hello"; 
       break; 
      case 1: 
       message = "World"; 
       break; 
      case 2: 
       message = "Foo"; 
       break; 
      case 3: 
       message = "Bar"; 
       break; 
     } 

     Toast.makeText(this,message + " was clicked",Toast.LENGTH_SHORT).show(); 
    } 
} 

希望這個幫助

+0

到目前爲止已經完成。如果我點擊一個listitem,第二個佈局會彈出。已完成。 – carefacerz 2010-12-18 19:34:48

+0

但是關於動物的細節與我點擊的任何項目相同 – carefacerz 2010-12-18 19:35:18

+0

「此方法有一個標識,您可以添加該標識以發送到下一個活動以知道哪個行(哪個項目)已被點擊。 所以在下一個活動中,您會根據收到的ID獲取正確的layout.xml和信息。「 你能不能告訴我更多的問題。 – carefacerz 2010-12-18 19:51:03