2013-02-03 99 views
0

我正在学习Android newboston ..我想先显示一个菜单,如本教程中显示的..我都做了同样的事情,但不知道为什么菜单活动没有提出..帮助我在哪里我做错了android listactivity not working

这是我的代码

的Android manfiest.xml

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".Splash" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- 2nd activity --> 


    <activity 
     android:name="com.example.android.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="com.example.android.MainActivity" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

    <!-- 3rd Activity Test --> 

     <activity 
     android:name=".Menu" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="com.example.android.Menu" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 


     <activity 
     android:name=".TesxtPlay" 
     android:label="@string/app_name" > 

    </activity> 
</application> 

这是menuClass

public class Menu extends ListActivity { 

//declaring above so both methods can access these 
String classes[] = {"MainActivity","TextPlay","example2", 
     "example3","example4","example5","example6",}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setListAdapter(new ArrayAdapter<String>(Menu.this, android.R.layout.simple_list_item_1, classes)); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    // TODO Auto-generated method stub 
    super.onListItemClick(l, v, position, id); 
    String cheese = classes[position]; 

    Class ourClass; 
    try { 
     ourClass = Class.forName("com.example.android." + cheese); 

     Intent ourIntent = new Intent(Menu.this,ourClass); 
     startActivity(ourIntent); 
    }catch(ClassNotFoundException e){ 
     e.printStackTrace(); 

    } 

} 


    } 

textPlayclass

public class TextPlay extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.test); 

    Button chkCmd = (Button) findViewById(R.id.bResults); 
    final ToggleButton passTog = (ToggleButton) findViewById(R.id.tbPassword); 
    final EditText input = (EditText) findViewById(R.id.etCommands); 
    TextView display = (TextView) findViewById(R.id.display); 
    passTog.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      if(passTog.isChecked()){ 
       input.setInputType(InputType.TYPE_CLASS_TEXT 
         | InputType.TYPE_TEXT_VARIATION_PASSWORD); 

      }else{ 
       input.setInputType(InputType.TYPE_CLASS_TEXT); 

      } 

     } 
    }); 
} 

     } 

飞溅

public class Splash extends Activity { 

MediaPlayer ourSong; 

@Override 
protected void onCreate(Bundle iloveyou) { 
    // TODO Auto-generated method stub 
    super.onCreate(iloveyou); 

    setContentView(R.layout.splash); 
ourSong = new MediaPlayer().create(Splash.this, R.raw.kalimba); 
    ourSong.start(); 
    Thread timer = new Thread(){ 
     public void run(){ 
      try{ 
       sleep(5000); 
      }catch(InterruptedException e){ 
       e.printStackTrace(); 
      }finally{ 
       //starting activity 
       Intent openMainActivityClass = new Intent("com.example.android.MainActivity"); 
       startActivity(openMainActivityClass); 
      } 

     } 
    }; 

    timer.start(); 

} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    ourSong.release(); 
    finish(); 
} 


    } 
+3

你得在'机器人一个错字:NAME = “TesxtPlay。”'。 – jenzz

+0

是啊我纠正它..但仍然没有工作 – mynameisjohn

回答

0

你.Splash活动有 <category android:name="android.intent.category.LAUNCHER" /> 意图过滤器在里面。

这意味着这是您运行应用程序时启动的活动。

编辑:

在你Splash.java,你就是发动意图过滤器“” com.example.android.MainActivity”活动

这个心不是你的菜单活动..你的菜单活动有意图过滤器 “com.example.android.Menu”

所以只是改变

Intent openMainActivityClass = new Intent("com.example.android.MainActivity");

Intent openMainActivityClass = new Intent("com.example.android.Menu");

+0

是啊是啊...你写..我正在切换菜单...好吧,我张贴溅水活动 – mynameisjohn

+0

我更新了我的问题 – mynameisjohn

+0

我更新了答案。看看并尝试一下。 – Akash

0

菜单没有显示出来,因为你不充气。

在你的菜单类添加以下代码行:

@Override 
public boolean onCreateOptionsMenu(android.view.Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

这里假设你的菜单被存储为menu.xml的文件夹/res/menu

编辑:

menu.xml应该是这个样子:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/itemAboutUs" 
     android:icon="@android:drawable/ic_menu_info_details" 
     android:title="About Us"> 
    </item> 
    <item 
     android:id="@+id/itemPreferences" 
     android:icon="@android:drawable/ic_menu_preferences" 
     android:title="Preferences"> 
    </item> 

</menu> 
+0

以及没有菜单的XML ...它只是显示从菜单class.java中的值..其中我已经定义了数组中的值/// – mynameisjohn

+0

您拥有的值在'String classes []'中定义的是你的列表项。这些不是你的菜单项。我在我的答案中添加了一个'menu.xml'的例子。把这个文件放在'/ res/menu'文件夹中,你就可以开始了! – jenzz