我正在尝试创建一个应用程序,当我点击列表时,新活动应该打开。例如,如果我点击苹果,苹果xml文件应该打开,但它没有发生。
package com.example.fruitsinfo;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class Home extends Activity implements OnItemClickListener{
String fruits[]={"apple","BANANA","MANGO","CHERRY","ORANGE","LITCHE","GRAPES","WATRMELON","KIWI","SWEET LEMON","STAWBERRY","POMOGRANATE"};
Context c=this;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
lv=(ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(c, android.R.layout.simple_list_item_1,fruits);
lv.setAdapter(adapter);
lv.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
String location=fruits[arg2];
try {
Class a= Class.forName("com.example.fruitsinfo." + location);
Intent intent=new Intent(c,a);
startActivity(intent);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Apple.java类
package com.example.fruitsinfo;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
public class apple extends Activity{
ImageView apple;
ScrollView sv;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
apple=(ImageView) findViewById(R.id.imageView1);
Log.d("asfdasf","apple class");
sv=(ScrollView) findViewById(R.id.SonucScrollView);
tv=(TextView) findViewById(R.id.SonucTextView);
}
}
答案 0 :(得分:2)
Apple活动中缺少setContentVew
。它会崩溃,因为你没有将布局的内容设置为活动,而是在此之前初始化视图。
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);
apple=(ImageView) findViewById(R.id.imageView1);
也遵循java命名约定。用Apple替换苹果。
编辑:
你有
Context c=this; // remove this
或者
在c
onCreate
上下文不可用,直到创建活动。
同时更改
Class a= Class.forName("com.example.fruitsinfo." + location);
Intent intent=new Intent(c,a);
到
Class a= Class.forName("com.example.fruitsinfo."+location);
Intent intent=new Intent(Home.this,a);
答案 1 :(得分:2)
在 apple 活动课程中,您没有设置视图。所以请打电话给这个
setContentView(R.layout.layoutname);
之后
super.onCreate(savedInstanceState);
答案 2 :(得分:1)
你错过了
setContentView(R.layout.<youractivitylayout>);
在appleActivity中。然后只有它会显示图像视图布局的bcoz内容没有元素所以试着把它放在你的苹果活动下面。
super.onCreate(savedInstanceState);
setContentView(R.layout.<youractivitylayout>);
然后在apple活动中获取您的布局元素 谢谢......
答案 3 :(得分:0)
首先,您可以在androidmainfest文件中添加活动,并检查您的包名是否正确
您在Apple类中缺少setCotent,因此您可以添加
setContentView(R.layout.apple);