0

こんにちは

リストビューのアイテムのオンクリックでアクティビティを起動しようとしています

  • これには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 クラスが不完全です ..... このクラスの部分を埋めようとしています

何か案は、

ありがとう

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 イベントを登録できます。このようにして、新しいアクティビティを開始できます。

    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)

名前が示すように、最初のアクティビティに何らかのデータを返したい場合は、2 番目のものが使用されます。

onClick ()メソッドで:

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

次のように、2 番目のアクティビティで情報が必要な場合は、インテントに情報をパックできます。

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 定数であり、一意である必要があります。

2 番目の方法を使用し、開始したアクティビティを終了して結果を出したい場合:

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

finish() が呼び出された後、開始アクティビティのonActivityResult(...)が呼び出されます。

于 2013-08-19T08:42:14.517 に答える