0

[こちら]をクリックこのチュートリアル

こんにちは、私はアンドロイドが初めてです。複数のクリック可能なゾーンを持つリストを作成するためのこのチュートリアルを見つけました。クリック可能な行が 1 つだけではなく、ユーザーが触れることのできるインタラクティブな場所が複数ある ListView。

プロジェクトでこの種のリストが必要ですが、リストの各行に異なる画像を設定できません。

私を助けてください 。

public class MyActivity extends Activity implements AdapterView.OnItemClickListener, View.OnClickListener {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView list = new ListView(this);
        setContentView(list);

        String[] items = {"Tom", "Sally", "Bill", "John", "Santiago", "Isabella"};
        //Supply this adapter with either R.layout.row_button, R.layout.row_view, or R.layout.row_view_noparent
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row_view, R.id.text, items) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View row =  super.getView(position, convertView, parent);

                View left = row.findViewById(R.id.left);
                left.setTag(position);
                left.setOnClickListener(MyActivity.this);
                View right = row.findViewById(R.id.right);
                right.setTag(position);
                right.setOnClickListener(MyActivity.this);

                return row;
            }
        };

        list.setAdapter(adapter);
        list.setOnItemClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()) {
        case R.id.left:
            Toast.makeText(this, "Left Accessory "+v.getTag(), Toast.LENGTH_SHORT).show();
            break;
        case R.id.right:
            Toast.makeText(this, "Right Accessory "+v.getTag(), Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
        }
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        Toast.makeText(this, "Item Click "+position, Toast.LENGTH_SHORT).show();
    }
}
 <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:orientation="horizontal" >    
    <ImageView
        android:id="@+id/left"
        android:layout_width="?android:attr/listPreferredItemHeight"
        android:layout_height="fill_parent"
        android:background="@drawable/mybutton"
        android:clickable="true"
        android:scaleType="center"
        android:src="@drawable/icon" />    
    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <ImageView
        android:id="@+id/right"
        android:layout_width="?android:attr/listPreferredItemHeight"
        android:layout_height="fill_parent"
        android:background="@drawable/mybutton"
        android:clickable="true"
        android:scaleType="center"
        android:src="@drawable/icon" /></LinearLayout> 
4

1 に答える 1

1

カスタム アダプターを使用してから、getview メソッドで imageview の ID をフェッチし、onclicklistener を適用します。 カスタムリスト
を参照

于 2013-01-18T13:27:31.810 に答える