Android 无法创建列表视图
我想在单击按钮时创建一个listview。当从活动中单击按钮时,它应该会打开一个listview。无法单击listview。它只是用来显示数据的。目前我不能这样做 代码如下: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
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
}
});