2011-10-07 72 views
0

我已經制作了包含播放,設置和退出的菜單列表。但點擊該按鈕並沒有帶我到期望的活動列表器不工作..可以任何一個幫助我解決問題..將b謝謝.. 是它的列表視圖控制..Android:我如何通過點擊ListView中的項目從一個活動切換到另一個活動

有兩個錯誤在我的代碼之一是 @@類型新AdapterView.OnItemClickListener(){}必須實現繼承的抽象方法AdapterView.OnItemClickListener.onItemClick(適配器視圖,視圖的int,long)@@在LINE-

而另一個是@@查看無法解析到類型@@在LINE 2 「其實我想從一個屏幕切換到另一個,當我點擊主菜單屏幕上的項目」

這裏是主菜單的代碼

public class MenuActivity extends Activity { 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.menu); 
     ListView menuList = (ListView) findViewById(R.id.list); 
     String[] items = { 
      getResources().getString(R.string.pla), 
      getResources().getString(R.string.sco), 
      getResources().getString(R.string.set), 
      getResources().getString(R.string.hel), 
      getResources().getString(R.string.qui) 
     }; 
     ArrayAdapter <String> adapt = new ArrayAdapter <String> (this, R.layout.menu_items, items); 
     menuList.setAdapter(adapt); 
     menuList.setOnItemClickListener(new AdapterView.OnItemClickListener() { //LINE 1 error 
      public void onItemClick(AdapterView <? > parent, View itemClicked, //LINE 2 error 
       int position, long id) { 
       TextView textView = (TextView) itemClicked; 
       String strText = textView.getText().toString(); 
       if (strText.equalsIgnoreCase(getResources().getString(
        R.string.pla))) { 
        // Game 
        startActivity(new Intent(MenuActivity.this, 
         GameActivity.class)); 
       } else if (strText.equalsIgnoreCase(getResources().getString(
        R.string.hel))) { 
        // Help 
        startActivity(new Intent(MenuActivity.this, 
         HelpActivity.class)); 
       } else if (strText.equalsIgnoreCase(getResources().getString(
        R.string.set))) { 
        //Settings 
        startActivity(new Intent(MenuActivity.this, 
         SettingsActivity.class)); 
       } else if (strText.equalsIgnoreCase(getResources().getString(
        R.string.sco))) { 
        // Scores 
        startActivity(new Intent(MenuActivity.this, 
         ScoresActivity.class)); 
       } 
      } 
     }); 
    } 
} 
+0

只是爲了確保沒有誤解:你有ListView或菜單項(播放,退出,...)? – banzai86

+0

澄清你使用什麼? ListView或Menu? – Richa

+0

請詳細說明問題。 分享您的代碼,以便我可以看到問題在哪裏? –

回答

0
ListView lv = ...; 
lv.setOnItemClickListener(new OnItemClickListener() { 
public void onItemClick(AdapterView<?> arg0,View arg1, int arg2, long arg3) 
{ 
    //Do Your Stuff 
} 
}); 

,或者你可以讓你的自定義適配器和寫入按鈕的點擊事件

0

使用意圖

Intent play= new Intent(getApplicationContext(),Play.class); 
startActivity(play); 

有很多教程的有關菜單

0

此任務可以使用android的主要構建塊之一命名爲Intents,並且其中一個屬於您的Activity類的方法public void startActivity (Intent intent)完成。

意圖是要執行的操作的抽象描述。它可以與startActivity一起使用以啓動一個Activity,broadcastIntent將其發送給任何感興趣的BroadcastReceiver組件,並使用startService(Intent)或bindService(Intent,ServiceConnection,int)與後臺服務進行通信。

Intent提供了一種工具,用於在不同應用程序中的代碼之間執行延遲的運行時綁定。其最重要的用途是開展活動,在活動中它可以被認爲是活動之間的膠水。它基本上是一個被動數據結構,它包含要執行的操作的抽象描述。

請參考官方文檔 - http://developer.android.com/reference/android/content/Intent.html

public void startActivity (Intent intent) - 用來啓動一個新的活動。

因此,假設你有兩個Activity類和點擊一個按鈕的OnClickListener()你從一個活動想移動到另一個則 -

  1. PresentActivity - 這是你當前活動的要去第二次活動。

  2. NextActivity - 這是您想要移動的下一個活動。

因此該意圖會是這樣

Intent(PresentActivity.this, NextActivity.class) 

最後這將是完整的代碼

public class PresentActivity extends Activity { 
     protected void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 

      setContentView(R.layout.content_layout_id); 

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

        Intent activityChangeIntent = new Intent(PresentActivity.this, NextActivity.class); 

        // currentContext.startActivity(activityChangeIntent); 

        PresentActivity.this.startActivity(activityChangeIntent); 
       } 
      }); 
     } 
    } 

這exmple有關點擊鏈接,你可以在任何地方這是使用代碼寫在裏面的按鈕點擊的OnClickListener()在任何你想在你的活動之間切換的地方,比如你的setOnItemClickListener

相關問題