0

我有一个名为 main_activity.xml 的活动和两个名为 Main.java 和 Menu.java 的 java 类。在 Menu.java 类中,我扩展了 ListActivity 类。当我运行 myApp 时,它会弹出强制关闭。请帮忙。

下面是 Menu.java 的代码:

公共类菜单扩展 ListActivity{

String classes[]={"Main","Second","Third","China"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    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 selectedItem= classes[position];
    try{
        Class myClass = Class.forName("com.example.myapp."+selectedItem);
        Intent myIntent=new  Intent(Menu.this, myClass);
        startActivity(myIntent);
    }
    catch(ClassNotFoundException e)
    {
        e.printStackTrace();
    }
}

}

Main.java 类代码:

公共类主要扩展活动{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent=new Intent("com.example.myapp.Menu");
    startActivity(intent);

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

Mainfest 文件代码:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<application
    <activity
        android:name="com.example.myapp.Main"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

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


</application>

错误快速排序:

在此处输入图像描述

4

3 回答 3

0

没有定义任何活动来处理意图。这可能是因为您没有在 onCreate 中正确启动您的意图。尝试这样的事情

Intent intent = new Intent(Main.this,Menu.class)
Main.this.startActivity(intent);

编辑:另外我一定要问你有没有在清单中声明你的活动?

于 2013-04-09T03:40:22.917 回答
0

在你的代码中一切都很好。但是当你打电话给其他班级时,你没有明确说明。任何方式使用下面的示例代码都可以正常工作..

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MyListActivity extends ListActivity {
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
        "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
        "Linux", "OS/2" };
    // Use your own layout
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        R.layout.rowlayout, R.id.label, values);
    setListAdapter(adapter);
  }

  @Override
  protected void onListItemClick(ListView l, View v, int position, long id) {
    String item = (String) getListAdapter().getItem(position);
    Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
  }
} 

If u want to show it in your own layout use below rowlayout.xml file

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

    <ImageView
        android:id="@+id/icon"
        android:layout_width="22px"
        android:layout_height="22px"
        android:layout_marginLeft="4px"
        android:layout_marginRight="10px"
        android:layout_marginTop="4px"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="20px" >
    </TextView>

</LinearLayout> 

现在您可以使用带有类名的按钮 onclicklistner 调用此类。

我希望它有帮助:)

于 2013-04-09T04:01:26.880 回答
0

像这样改变

Intent intent=new Intent(Main.this, Menu.class);
startActivity(intent);

像这样更改清单

  <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
<activity
    android:name="com.example.myapp.Main"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity   
      android:name="com.example.myapp.Menu" >
</activity>



</application>
于 2013-04-09T04:07:28.783 回答