0

你好

我正在尝试在列表视图中启动一项活动 onclick

  • 我为此使用 Bean 类(Names.java)
  • 这是我的课

名称.java

public class Names implements Serializable{

    private String Name;

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

    public String getName(){
        return Name;
    }

}

新配置文件.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 类不完整......我正在尝试填充这个类的部分

有任何想法吗,

谢谢

4

4 回答 4

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); 
    }
于 2013-08-19T08:24:27.750 回答
0

你已经设置了你的 ListViewLV设置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);


            }
});
于 2013-08-19T08:25:35.030 回答
0

您可以在 ListView 的对象上注册 setOnItemClickListener 事件。这样就可以开始新的Activity了:

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


            }
        } );
于 2013-08-19T08:30:43.870 回答
0

一个活动有方法

startActivity(Intent)
startActivityForResult(Intent, requestCode)

顾名思义,如果您想将某种数据返回给您的第一个活动,则使用第二个。

现在在您的onClick()方法中:

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

如果您在第二个活动中需要它们,您可以在 Intent 中打包信息,如下所示:

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

要在您的NewProfile 活动中获取此信息,您需要获取 Intent:(例如在您的 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();

调用完finish() 后,将调用开始活动的onActivityResult(...)

于 2013-08-19T08:42:14.517 回答