新活动没有显示出来

时间:2014-03-24 05:05:05

标签: android android-activity

我正在尝试创建一个应用程序,当我点击列表时,新活动应该打开。例如,如果我点击苹果,苹果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);

    }

}

4 个答案:

答案 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);