0

誰かが私を正しい方法で導いてくれます。

私は以下のデザインを持っています: main.xml

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

        <ListView android:layout_width="fill_parent"   
          android:layout_height="fill_parent"   
          android:id="@+id/topSongs">  
        </ListView>  

    </RelativeLayout>

list.xml

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

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:src="@drawable/albumart_cocktail" />

        <TextView
            android:id="@+id/AlbumText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/imageView2"
            android:layout_toRightOf="@+id/imageView2"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/songText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/AlbumText"
            android:layout_centerVertical="true"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </RelativeLayout>

活動コード:

私はこの配列を持っています:

 String[] AlbumText = {"Maximum", "Shangai", "Cocktail",
            "Rowdy Rathore", "Bol Bachan"
    };
    String[] songText = {"Sunday", "Monday", "Tuesday",
              "Wednesday", "Thursday"
    };

そして、特定の曲の 5 つの画像 (アルバム アート)。私は次のように配列を設定しています:

setListAdapter(new ArrayAdapter<String>(this,
    R.layout.list, R.id.songText, songText));
setListAdapter(new ArrayAdapter<String>(this,
    R.layout.list, R.id.AlbumText, AlbumText));

上記が間違っていることはわかっています。適切な方法でそれを行う方法を知る必要があります。

私の質問: 2 つの textView と 1 つのアルバム アートを含む listView を実装する必要があるため、list.xml ファイル内で相対レイアウトを使用しました。少なくとも、1 つの配列を textView に送信する方法を知りましたが、特定の行の画像を変更する方法が本当にわかりません。

誰かが私を正しい方法で導いてください。

4

4 に答える 4

0

配列

String[] AlbumText = {"Maximum", "Shangai", "Cocktail", "Rowdy Rathore", "Bol Bachan"
};
String[] songText = {"Sunday", "Monday", "Tuesday","Wednesday", "Thursday"
};

 // add values to adapter class like this

MobileArrayAdapter adapter = new MobileArrayAdapter(this, AlbumText , songText );
        list.setAdapter(adapter);                

        list.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                      
              //here to use get values from adapter class and pass values use intent

                    Intent intent = new Intent(ListMobileActivity.this, Display.class);                         
                    intent.putExtra("AlbumText", one);
                    intent.putExtra("songText", two);                                    

                    startActivity(intent);          
                }
            }        
        });
    }

アクティビティを表示する

            message = getIntent().getExtras().getString("AlbumText");
            message1 = getIntent().getExtras().getString("songText");                                          

            text.setText(message);
            text1.setText(message1);
于 2012-08-03T11:16:27.903 に答える
0

違う:

setListAdapter(new ArrayAdapter<String>(this,
    R.layout.list, R.id.songText, songText));
setListAdapter(new ArrayAdapter<String>(this,
    R.layout.list, R.id.AlbumText, AlbumText));

カスタム アダプターを作成するための提案/手順:

  1. カスタム アダプターを作成し、ArrayAdapter または BaseAdapter のいずれかを拡張します
  2. getView() メソッドを実装します。
  3. ビュー ホルダーの設計パターンに従います。

はい、曲やアルバムについて 10 個の詳細がある場合、10 個の Array または Arraylist を作成しますか? 代わりに、getter/setter メソッドを使用してカスタム クラスを作成し、特定の項目のオブジェクトを作成して ArrayList に追加します。そのため、10 個の配列以外の単一の ArrayList または単一の詳細の ArrayList を簡単に管理できます。

于 2012-08-03T11:01:23.820 に答える
0

あなたが達成したいことのために、カスタムアダプターを実装する必要があると思います。
また、最後の行のみが有効になるため、アダプターを2回設定することは正しくないと思います。

Build a Custom Fancy ListView in Androidブログ投稿を参照して、カスタム アダプターの作成方法を理解してください。

于 2012-08-03T11:10:00.377 に答える