Java 当我传入类对象时,意图(上下文,类)不起作用会产生错误
我在安卓上工作。我创建了一个类,并以编程方式创建了一个列表。一切正常,除了我将类对象传递到Intent构造函数时,java给我一个错误,它无法解析变量Java 当我传入类对象时,意图(上下文,类)不起作用会产生错误,java,android,android-intent,Java,Android,Android Intent,我在安卓上工作。我创建了一个类,并以编程方式创建了一个列表。一切正常,除了我将类对象传递到Intent构造函数时,java给我一个错误,它无法解析变量 public class HomePageActivity extends ListActivity { String courses[]= {"MobileComputing", "Professional Issues", "Advance Programming", "Network Security", "Final Y
public class HomePageActivity extends ListActivity {
String courses[]= {"MobileComputing", "Professional Issues",
"Advance Programming", "Network Security", "Final Year Project-1"};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(HomePageActivity.this, android.R.layout.simple_list_item_1, courses));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
try {
Class courseOne = Class.forName("com.fastnuces.keepmeposted.courseone");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent CourseOneScr = new Intent(HomePageActivity.this, courseOne);
startActivity(CourseOneScr);
}
公共类HomePageActivity扩展了ListActivity{
字符串课程[]={“移动计算”、“专业问题”,
“高级编程”、“网络安全”、“最后一年项目-1”};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setListAdapter(新的ArrayAdapter(HomePageActivity.this,android.R.layout.simple_list_item_1,courses));
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
//TODO自动生成的方法存根
super.onListItemClick(左、右、位置、id);
试一试{
Class courseOne=Class.forName(“com.fastnuces.keepreposed.courseOne”);
}catch(classnotfounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
意向CourseOneScr=新意向(HomePageActivity.this,courseOne);
startActivity(courseonesr);
}
}在
try/catch
外部声明变量,或将意图
移到内部
try {
Class courseOne = Class.forName("com.fastnuces.keepmeposted.courseone");
Intent CourseOneScr = new Intent(HomePageActivity.this, courseOne);
startActivity(CourseOneScr);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
如果它在
try
中,那么如果出现异常,它将无法访问,并且它之外的任何东西都可能不知道它。哦,对不起。刚刚做了。你也可以添加详细的错误(stacktrace)吗?你的错误是编译时的还是运行时的?如果是运行时,是否可以提供logcat或stacktrace?可能是因为com.fastnuces.keepreposed.courseone是包的名称,而不是类@LucianNovac我也不知道,但看看OP得到的错误,“它无法解析变量。”这是一个编译错误,而不是您所说的运行时错误。看看它,这个变量显然超出了范围。你不能用“try/catch”这样做,如果他想启动的活动的完整类名为correct@LucianNovac我们不知道Intent
构造函数一旦运行就会出现问题,因为它无法运行!你是在假设我们没有信息的东西有问题。除了变量未被识别之外,你认为构造函数还有什么问题?我会看到项目没有编译如果他试图传递给Intent
的变量不在范围内,它甚至不会运行。如果您将字符串
更改为不正确的完整类名,它将编译并抛出异常
@LucianNovac dude,我将看到什么?你所描述的问题在这里并不存在。当前的问题只是传递给Intent
构造函数的变量的范围。一旦OP修复了,他就可以运行它了。当然,可能还有其他问题,但没有一个是显而易见的。你怎么知道那不是类名?