2012-07-03 77 views
1

我有一個列表視圖3文本。 NV1 - NV2 - NV3。我的問題是當我觸及NV1時,意圖向我展示NV1的佈局。但與其他沒有發生。它只是讓我看到同樣的NV。ListView與意圖

我創建了一個傳遞信息的2方法。

private void adapter (PT1Activity a){ 
     this.a = a; 
    } 

private void showGame(int nivel){ 
    Intent intent = new Intent (PT1Activity.this, NV1.class); 
    intent.putExtra("nivel2", nivel); 
    startActivity(intent); 
} 

和a:

私人PT1Activity一個;

adapter(this);

 ltNvs.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
       long arg3) { 


      a.showGame(position); 
     } 
    }); 

我該怎麼辦?將信息傳遞給其他NV2活動與捆綁??或者類似的東西?

+0

這並不完全清楚你在問什麼。根據你的代碼,你的listview中的所有三個按鈕都應該調用showGame,它始終啓動NV1.class。您是否想根據按下哪個按鈕來啓動不同的.class文件? – matt5784

+0

正確但我不認爲我必須爲其他創建新的2方法.class – Azrael94

+0

您不需要添加新方法,但需要某種switch/if語句來確定已經位置點擊。它不會神奇地知道。 – JuiCe

回答

0

你showgame函數應該是這樣的:

private void showGame(int nivel){ 
Intent intent; 
switch (nivel){ 
    case 1: 
     intent = new Intent (PT1Activity.this, NV1.class); 
     intent.putExtra("nivel1", nivel); 
     break; 
    case 2: 
     intent = new Intent (PT1Activity.this, NV2.class); 
     intent.putExtra("nivel2", nivel); 
     break; 
    case 3: 
     intent = new Intent (PT1Activity.this, NV3.class); 
     intent.putExtra("nivel3", nivel); 
     break; 
    default: 
     intent = new Intent(); 
    } 

startActivity(intent); 
} 

然而,這是假設所有的類都在同一個包。如果您想要在不同的包中啓動活動,則Intent(this, yourclass.Class)構造函數將不起作用。相反,嘗試這樣的事:

Intent intent = new Intent(); 
intent.setComponent(ComponentName.unflattenFromString("your.other.package/your.other.package.your_other_class_name")); 
startActivity(intent); 

注:your_other_class_name會像NV1,不​​。

+0

隨着你的形式matt5784我有一個錯誤的情況下默認 – Azrael94

+0

對不起,在默認情況下有無效的語法。應該立即修復...假設你有所有正確的東西(三個類名爲NV1,NV2,NV3) – matt5784

+0

我有一個錯誤。「ActivityNotFoundException:找不到處理意圖的活動」 – Azrael94

0

我必須誠實,我不完全確定你在問什麼。希望看到這個,你可以得到一個想法。

private void showGame(int nivel){ 
    switch(nivel) { 
    case 1: 
     Intent intent = new Intent (PT1Activity.this, NV1.class); 
     intent.putExtra("nivel1", nivel); 
     startActivity(intent); 
     break; 
    case 2: 
     Intent intent = new Intent(PT1Activity.this, NV2.class); 
     intent.putExtra("nivel2", nivel); 
     startActivity(intent); 
     break; 
    case 3: 
     Intent intent = new Intent(PT1Activity.this, NV3.class); 
     intent.putExtra("nivel3", nivel); 
     startActivity(intent); 
     break; 
} 
+0

我試着用你的代碼JuiCe做。但我有一個「ActivityNotFoundExeption」。奇怪的是我在.manifest中申明 – Azrael94

+0

你上面試過亞光碼嗎?我只是想給你它的主旨。 – JuiCe

+0

您是否編寫過NV2和NV3活動? – JuiCe