0

ユーザーがリストビューのアイテムをクリックすると、新しいページが表示され、このページには選択したアイテムのみが表示されるアプリケーションを開発しています。つまり、特定のリストアイテムについては、以前に保存されたアイテムのみが表示されます。

この新しいページには、3つのチェックボックスがあります。したがって、ユーザーが特定のリストアイテムをクリックすると、新しいページにその特定のアイテムの以前に保存された状態のチェックボックスが表示されます。

今、私はそれを行う方法がわかりません。

よろしくお願いします!!

これは私のリストonItemClickです:-

OnItemClickListener ocl= new OnItemClickListener() 
            {
                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) 
                {
                    String name= list.get(arg2)[2];
                    Toast.makeText(Profile.this, "session of.." + name, Toast.LENGTH_LONG).show();
                    Settings.setName(name);
                    Intent intent= new Intent(Profile.this, ProfileConfig.class);
                    startActivity(intent);

                }
            };
            lvChildProfile.setOnItemClickListener(ocl);

保存したインスタンスのチェックボックスをクリックすると表示されます。

4

1 に答える 1

0

オブジェクト自体に状態を保持できます。

Model implements Serializable {

    boolean isOptionOneChecked
    boolean isOptionTwoChecked
    boolean isOptionThreeChecked
    int id
    ...

    // Constructor
    // Getters & setters

}

これはAdapater、タイプ Model からのオブジェクトのリストがあることを意味します。でこれらをどのように表示したいかはListView、カスタムで行うことができますAdapterが、それは本当の問題ではありません。

リスト内の項目をクリックすると、オブジェクトを取得できます (既に行ったように)。

Model lModel = list.get(position);

モデルを別の で表示するには、次のActivityように一緒に送信できますIntent

Intent intent= new Intent(Profile.this, ProfileConfig.class);
intent.putExtra("MySelectedObject", lModel);
startActivity(intent);

クラスはSerializableインターフェイスを実装しているため、次のように new でオブジェクトを取得できますActivity

getIntent().getSerializableExtra("MySelectedObject");

このオブジェクトに関するすべての情報が得られるため、それに応じてレイアウトを作成できます。

于 2012-12-07T10:12:12.967 に答える