我正在尝试创建一个应用程序,该应用程序应该在单击列表视图项目时转到另一个活动,并将所选项目的值传递给下一个活动。到目前为止,我的代码是:
package com.ara.quickaccess;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class View_Stud extends Activity{
ListView lv1;
String str[]={"abc SEM-VI","pqr SEM-VI","xyz SEM-V"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_stud);
lv1=(ListView) findViewById(R.id.listView1);
ArrayAdapter<String> ad=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,str);
lv1.setAdapter(ad);
lv1.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Intent i=new Intent(getApplicationContext(),Approve_Stud.class);
i.putExtra("data2", str[arg2]);
startActivity(i);
}
}
});
}
}
但是在执行上面的代码时,应用程序崩溃了。
package com.ara.quickaccess;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Approve_Stud extends Activity {
Intent i=getIntent();
String det=i.getStringExtra("data2");
TextView tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.approve_stud);
tv2=(TextView) findViewById(R.id.textView2);
tv2.setText(det);
}
}
答案 0 :(得分:1)
Activity
调用之前不会创建onCreate()
。您正试图在getStringExtra()
之前使用onCreate()
。您需要将其移至onCreate()
,同时将Intent i = getIntent();
移至onCreate()