通过单击ListView项,它应该移动到下一个活动

时间:2014-04-14 07:38:26

标签: android listview

我正在尝试创建一个应用程序,该应用程序应该在单击列表视图项目时转到另一个活动,并将所选项目的值传递给下一个活动。到目前为止,我的代码是:

    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);
}

}

1 个答案:

答案 0 :(得分:1)

Activity调用之前不会创建onCreate()。您正试图在getStringExtra()之前使用onCreate()。您需要将其移至onCreate(),同时将Intent i = getIntent();移至onCreate()