从listview启动活动

时间:2013-08-19 08:15:45

标签: android android-listview

您好

我正在尝试启动listview

中项目的活动
  • 我正在使用Bean类(Names.java)
  • 这是我的课程

Names.java

public class Names implements Serializable{

    private String Name;

    public void setName(String name){
        this.Name=name;
    }

    public String getName(){
        return Name;
    }

}

NewProfile.java

public class NewProfile extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.new_profile);

        Bundle b=getIntent().getExtras();
        TextView tv=(TextView) findViewById(R.id.NewTextView);

    }
}

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" >
    </ListView>

</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="5dp"
        android:text="TextView"
        android:textStyle="italic|bold" />

</LinearLayout>

new_profile.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/NewTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="TextView"
        android:textSize="18dp"
        android:textStyle="bold" />

</RelativeLayout>

MainActivity.java

public class MainActivity extends Activity implements OnItemClickListener {


    ArrayList<Names> AL=new ArrayList<Names>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Names obj1=new Names();
        obj1.setName("Sam");
        AL.add(obj1);

        Names obj2=new Names();
        obj2.setName("carl");
        AL.add(obj2);




        ListView LV=(ListView) findViewById(R.id.listView1);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.textView1,AL);
        LV.setAdapter(adapter);
        LV.setOnItemClickListener(this);

    }

    public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
        // TODO Auto-generated method stub

        Bundle B=new Bundle();
            TextView TV=(TextView) findViewById(R.id.textView1);


            if(position==0){


            }   
        }

}

MainActivity类不完整.....我正在尝试填写本课程的各个部分

anyIdeas,

感谢

4 个答案:

答案 0 :(得分:0)

您可以使用以下代码开始新活动..根据您的要求编写您的逻辑

public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) {
    // TODO Auto-generated method stub

    Intent intent=new Intent(CURRENT_ACTIVITY.this,NEW_ACTIVITY.class);
    startActivity(intent); 
    }

答案 1 :(得分:0)

您已将ListView LV设置为setOnItemClickListener(this),您应继续此操作。

setOnItemClickListener(new AdapterView.OnItemClickListener() {

            public void onItemClick(AdapterView<?> parentAdapter, View view,
                    int position, long id) {

                Intent i = new Intent(getActivity(), YourNextActivity.class);
                startActivity(i);


            }
});

答案 2 :(得分:0)

您可以在ListView的对象上注册setOnItemClickListener事件。通过这种方式,您可以开始新的活动:

    listView.setOnItemClickListener(new OnItemClickListener() {
            Intent intent = new Intent(ThisActivity.this, That_Activity.class);
    startActivity(intent); 
            }
        } );

如果您想将某些数据传递给另一个可以使用的活动。

    listView.setOnItemClickListener(new OnItemClickListener() {
    Intent intent = new Intent(ThisActivity.this, That_Activity.class);
    //If you want to pass some data use.
    Bundle extras = new Bundle();
    extras.putInt("KeyGoesHere", intValue);
    intent.putExtras(extras); 
    startActivity(intent);


            }
        } );

答案 3 :(得分:0)

活动有方法

startActivity(Intent)
startActivityForResult(Intent, requestCode)

顾名思义,第二个是使用的,如果你想获得某种数据回到你的第一个活动。

现在在 onClick()方法中

Intent i = new Intent(this, NewProfile.class);
startActivityForResult(i, REQUEST_SOMETHING);

如果您在第二项活动中需要这些信息,您可以在您的意图中打包信息:

int important = 10;
i.putExtra(EXTRA_IMPORTANT_INT, important);

要在 NewProfile活动中获取此信息,您需要获取意图:(例如在您的onCreate()中)

int important = getIntent().getIntExtra(EXTRA_IMPORTANT_INT, 0);

EXTRA_IMPORTAN_INT是一个String常量,REQUEST_SOMETHING是一个int常量,它应该是唯一的。

如果您使用了第二种方法并想要使用结果退出已启动的活动:

Intent data = new Intent();
data.putExtra(EXTRA_NEW_VALUE, something);
setResult(Activity.RESULT_OK, data);
finish();

在调用完成()后,将调用起始活动的 onActivityResult(...)