2011-10-07 91 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

相关问题