Android 无法创建列表视图

Android 无法创建列表视图,android,listview,android-listview,Android,Listview,Android Listview,我想在单击按钮时创建一个listview。当从活动中单击按钮时,它应该会打开一个listview。无法单击listview。它只是用来显示数据的。目前我不能这样做 代码如下: public class Approve_Stud extends Activity { Button b1,b2,b3; int l; String name,sem,reason,from,to,branch,shift,phone_no; @Override

我想在单击按钮时创建一个listview。当从活动中单击按钮时,它应该会打开一个listview。无法单击listview。它只是用来显示数据的。目前我不能这样做 代码如下:

public class Approve_Stud extends Activity {
    Button b1,b2,b3;
    int l;
        String name,sem,reason,from,to,branch,shift,phone_no;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.approve_stud);
            Bundle bun=getIntent().getExtras();
            phone_no=bun.getString("phone_no");
            name=bun.getString("name");
            sem=bun.getString("sem");
            reason=bun.getString("reason");
            from=bun.getString("from");
            to=bun.getString("to");
            branch=bun.getString("branch");
            shift=bun.getString("shift");
            TextView tv2,tv4,tv8,tv12,tv14,tv6,tv10;
            tv2=(TextView) findViewById(R.id.textView2);
            tv4=(TextView) findViewById(R.id.textView4);
            tv8=(TextView) findViewById(R.id.textView8);
            tv12=(TextView) findViewById(R.id.textView12);
            tv14=(TextView) findViewById(R.id.textView14);
            tv6=(TextView) findViewById(R.id.textView6);
            tv10=(TextView) findViewById(R.id.textView10);
            b1=(Button) findViewById(R.id.button1);
            b2=(Button) findViewById(R.id.button2);
            b3=(Button) findViewById(R.id.button3);
            tv2.setText(name);
            tv4.setText(sem);
            tv8.setText(reason);
            tv12.setText(from);
            tv14.setText(to);
            tv6.setText(branch);
            tv10.setText(shift);
            b1.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                     AsyncTask<String,Void,String>ap=new Approve(Approve_Stud.this).execute(phone_no,sem,from,to,"1");
                       try{
                           String result=ap.get();
                             Toast.makeText(getBaseContext(),result, Toast.LENGTH_LONG).show();                
                                       }catch(Exception e)
                       {

                       }
                }
            });
    b2.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                     AsyncTask<String,Void,String>ap=new Approve(Approve_Stud.this).execute(phone_no,sem,from,to,"0");
                       try{
                           String result=ap.get();
                             Toast.makeText(getBaseContext(),result, Toast.LENGTH_LONG).show();                
                                       }catch(Exception e)
                       {

                       }
                }
            });

    b3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            String status[]=new String[20];
            String sem[]=new String[20];
            String from_date[]=new String[20];
            String to_date[]=new String[20];
             AsyncTask<String,Void,String>id1=new CountRows1(Approve_Stud.this).execute(phone_no);
               try{
                String   result2= id1.get();
                    l=Integer.parseInt(result2);
               }catch(Exception e)
               {

               }
            AsyncTask<String,Void,String>id=new History(Approve_Stud.this).execute(phone_no);
             try{ String result1= id.get();
                int j=0;
                for(int i=0;i<l;i++)
                {
            String div[]=result1.split("-");

             sem[i]=div[j++];
             from_date[i]=div[j++];
             to_date[i]=div[j++];
             status[i]=div[j++];
                }
             }catch(Exception e)
             {

             }
              Intent i=new Intent(Approve_Stud.this,ViewHistory.class);

                 Bundle bundle =new Bundle();

                   bundle.putStringArray("sem",sem);
                   bundle.putStringArray("from_date",from_date);
                   bundle.putStringArray("to_date",to_date);
                   bundle.putStringArray("status", status);
                    bundle.putInt("length", l);
                    i.putExtras(bundle);
                    startActivity(i);
        }
    });
   }
}
公共类批准活动{
按钮b1、b2、b3;
int l;
字符串名称、sem、原因、发件人、收件人、分支、班次、电话号码;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(右布局,批准螺栓);
Bundle bun=getIntent().getExtras();
phone_no=bun.getString(“phone_no”);
name=bun.getString(“name”);
sem=bun.getString(“sem”);
reason=bun.getString(“reason”);
from=bun.getString(“from”);
to=bun.getString(“to”);
branch=bun.getString(“branch”);
shift=bun.getString(“shift”);
文本视图tv2、tv4、tv8、tv12、tv14、tv6、tv10;
tv2=(TextView)findViewById(R.id.textView2);
tv4=(TextView)findViewById(R.id.textView4);
tv8=(TextView)findViewById(R.id.textView8);
tv12=(TextView)findViewById(R.id.textView12);
tv14=(TextView)findViewById(R.id.textView14);
tv6=(TextView)findViewById(R.id.textView6);
tv10=(TextView)findViewById(R.id.textView10);
b1=(按钮)findViewById(R.id.button1);
b2=(按钮)findViewById(R.id.button2);
b3=(按钮)findViewById(R.id.button3);
tv2.setText(名称);
tv4.setText(sem);
tv8.setText(原因);
tv12.setText(from);
tv14.setText(to);
tv6.setText(分行);
tv10.setText(shift);
b1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
AsyncTaskap=new Approve(Approve_Stud.this)。执行(电话号码、sem、发件人、收件人,“1”);
试一试{
字符串结果=ap.get();
Toast.makeText(getBaseContext(),result,Toast.LENGTH_LONG.show();
}捕获(例外e)
{
}
}
});
b2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
AsyncTaskap=new Approve(Approve_Stud.this).execute(电话号码,sem,发件人,收件人,“0”);
试一试{
字符串结果=ap.get();
Toast.makeText(getBaseContext(),result,Toast.LENGTH_LONG.show();
}捕获(例外e)
{
}
}
});
b3.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
//TODO自动生成的方法存根
字符串状态[]=新字符串[20];
字符串sem[]=新字符串[20];
字符串from_date[]=新字符串[20];
字符串to_date[]=新字符串[20];
AsyncTaskid1=新计数行1(批准此项)。执行(电话号码);
试一试{
字符串result2=id1.get();
l=整数.parseInt(结果2);
}捕获(例外e)
{
}
AsyncTaskid=新历史记录(批准此)。执行(电话号码);
试试{String result1=id.get();
int j=0;

对于
viewshistory
中的(int i=0;i缺少
setContentView(R.layout.yourlayout)
。您的应用程序应该崩溃,因为您没有将布局设置为活动,并且初始化了
ListView

ListView lv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout); // missing
lv2=(ListView) findViewById(R.id.listView2);

ArrayList history;
未初始化

首先,您尚未在
ViewHistory
类中设置布局,因此首先使用
setContentView(R.layout.yourlayoutfile);

第二件事是,您没有实现
ListView的
onItemClick监听器以允许其单击事件,因此您已经实现了
ListView的

第三,确保在
onCreate()

按以下方式更改代码:

ListView lv2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
      setContentView(R.layout.yourlayout); // set your layout first
     lv2=(ListView) findViewById(R.id.listView2);

      history=new ArrayList<String>(); //initiliaze arraylist

     //implement your listview's item click listener.
     lv2.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub

        }
    });
ListView-lv2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);//首先设置布局
lv2=(ListView)findViewById(R.id.listView2);
历史=新建ArrayList();//初始化ArrayList
//实现listview的项目单击侦听器。
lv2.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//TODO自动生成的方法存根
}
});

@user3523322这是一个错误。你的应用程序崩溃了吗?这是logcat 04-23 11:27:49.560:E/AndroidRuntime(3353)的一部分:在writeCrashedAppName中,pkgName:com.example。eleave@user3523322未初始化
ArrayList history;
。您应该发布完整的堆栈跟踪,而不是只解决一行。非常感谢!@user3523322还有一些错误。
AsyncTaskid=新的历史记录(批准)。执行(电话号码);再试一次{String result1=id.get()
ListView lv2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
      setContentView(R.layout.yourlayout); // set your layout first
     lv2=(ListView) findViewById(R.id.listView2);

      history=new ArrayList<String>(); //initiliaze arraylist

     //implement your listview's item click listener.
     lv2.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub

        }
    });