Android 单击ListAdapter中的项目不会';我什么也不做

Android 单击ListAdapter中的项目不会';我什么也不做,android,eclipse,listadapter,Android,Eclipse,Listadapter,我正在尝试用android制作我的第一个列表适配器,它会生成列表,但是当我单击这些项目时,什么都没有发生。我唯一的猜测是在定义类cvar的那行后面的注释 package scouting.form; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapte

我正在尝试用android制作我的第一个列表适配器,它会生成列表,但是当我单击这些项目时,什么都没有发生。我唯一的猜测是在定义类cvar的那行后面的注释

package scouting.form;

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

public class Menu extends ListActivity{

    String classes[] = {"SCOUTING","LOGIN","MAIN"};

    @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)
    {
        super.onListItemClick(l, v, position, id);
        String cheese= "com.cody.graham."+classes[position];
        try{
            Class cvar=Class.forName(cheese);     //Eclipse has a warning on this line "Class is a raw type. References to generic type Class<T> should be parameterized". I don't really know what that means.
            Intent intention=new Intent(Menu.this,cvar);
            startActivity(intention);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }
    }
}
package scouting.form;
导入android.app.ListActivity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类菜单扩展了ListActivity{
字符串类[]={“侦察”、“登录”、“主”};
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setListAdapter(新的ArrayAdapter(Menu.this,android.R.layout.simple_list_item_1,classes));
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id)
{
super.onListItemClick(左、右、位置、id);
String cheese=“com.cody.graham.”类[位置];
试一试{
Class cvar=Class.forName(cheese);//Eclipse在这一行有一个警告:“类是原始类型。对泛型类型类的引用应该参数化”。我真的不知道这是什么意思。
意向=新意向(菜单,本,cvar);
触觉(意向);
}catch(classnotfounde异常){
e、 printStackTrace();
}
}
}
编辑:

AndroidManifest的一部分:

<activity android:name=".splash_screen" android:label="@string/title_activity_splash" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity android:name=".Login" android:label="@string/title_activity_login" android:exported="false">
    <intent-filter>
        <action android:name="com.cody.graham.LOGIN" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

<activity android:name=".Scouting" android:label="@string/title_activity_scouting" android:exported="false">
    <intent-filter>
        <action android:name="com.cody.graham.SCOUTING" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

请尝试以其显示方式命名类。像童子军一样

同时尝试更改您的清单:

请尝试以其显示方式命名类。像童子军一样

同时尝试更改您的清单:


首先,从您的清单中删除
搜索
登录
部分(将该部分留给
.splash\u屏幕)
。除非您需要从第三方(外部)应用程序启动任何
活动
类,否则无需声明基于操作的
部分-这也是不好的做法

其次,按照wtsang02的建议执行,并将类字符串数组更改为

String classes[] = {"Scouting","Login","splash_screen"};
另外,假设其他
活动
类(如童子军等)与
菜单
在同一个包中,请更改此行

String cheese= "com.cody.graham."+classes[position];
Class cvar=Class.forName(cheese);

String cheese= "scouting.form." +classes[position];
…为了消除日食警告,这行

String cheese= "com.cody.graham."+classes[position];
Class cvar=Class.forName(cheese);
…到

Class<?> cvar=Class.forName(cheese);
Class cvar=Class.forName(奶酪);

首先,从清单中删除
搜索
登录
部分(将该部分保留在
.splash\u屏幕上)
。除非您需要从第三方(外部)应用程序启动任何
活动
类,否则无需声明基于操作的
部分-这也是不好的做法

其次,按照wtsang02的建议执行,并将类字符串数组更改为

String classes[] = {"Scouting","Login","splash_screen"};
另外,假设其他
活动
类(如童子军等)与
菜单
在同一个包中,请更改此行

String cheese= "com.cody.graham."+classes[position];
Class cvar=Class.forName(cheese);

String cheese= "scouting.form." +classes[position];
…为了消除日食警告,这行

String cheese= "com.cody.graham."+classes[position];
Class cvar=Class.forName(cheese);
…到

Class<?> cvar=Class.forName(cheese);
Class cvar=Class.forName(奶酪);


另外,Java中的所有内容都区分大小写。类查找也不例外-您可以很容易地拥有一个名为Scouting的类和一个完全不同的名为Scouting的类。在我得到这篇文章之前,我测试了这个类,因为我有一个名为“Scouting”的类,清单将其名称设置为“com.cody.graham.Scouting”,而在其他地方我使用“Scouting”。我做了一个列表{“侦察”、“侦察”、“侦察”}作为测试,3个按钮都没有做任何事情。我没有发现java代码有任何错误。你能再检查一下你的包名吗?代码运行,菜单出现了,但是当我点击菜单时,什么也没发生。PS侦察类确实有效,因为它在我添加菜单之前有效,我根本没有更改它。我很确定它与警告“类是原始类型。对泛型类型类的引用应该参数化”有关。问题是我不知道这意味着什么,也不知道如何“参数化”这个类。类查找也不例外-您可以很容易地拥有一个名为Scouting的类和一个完全不同的名为Scouting的类。在我得到这篇文章之前,我测试了这个类,因为我有一个名为“Scouting”的类,清单将其名称设置为“com.cody.graham.Scouting”,而在其他地方我使用“Scouting”。我做了一个列表{“侦察”、“侦察”、“侦察”}作为测试,3个按钮都没有做任何事情。我没有发现java代码有任何错误。你能再检查一下你的包名吗?代码运行,菜单出现了,但是当我点击菜单时,什么也没发生。PS侦察类确实有效,因为它在我添加菜单之前有效,我根本没有更改它。我很确定它与警告“类是原始类型。对泛型类型类的引用应该参数化”有关。问题是我不知道这意味着什么,也不知道如何“参数化”class.Logcat输出?我的直觉是找不到具有这些名称的类。您知道您可以创建实际类的列表吗?Logcat输出?我的直觉是找不到具有这些名称的类。你知道你可以创建一个实际类的列表吗?它仍然没有任何作用:(@bluebl1:我在你发表评论之前编辑过。请重新检查我的代码更改建议,确保你对
cheese
字符串使用了正确的包名。我想知道你如何删除意图过滤器并仍然使用它“com.cody.graham.”但我仍然有意图过滤器,因为我确实使用了一点。@bluebll1:要使用
操作,您可以以不同的方式创建
意图,而不指定