2017-12-19 7 views
-1

ボタンを追加して情報を表示して共有しようとしていますが、その操作方法はわかりません。プレイリストにアーティストを追加しようとしていますが、アダプターをカスタマイズできません

これはMainActivityのコードです:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    lv = (ListView) findViewById(R.id.lvPlaylist); 
    final ArrayList<File> mySongs = findSongs(Environment.getExternalStorageDirectory()); 
    items = new String[mySongs.size()]; 
    for (int i = 0; i < mySongs.size(); i++) { 
     items[i] = mySongs.get(i).getName().toString().replace(".mp3", "").replace(".wav", ""); 
    } 
    final ArrayAdapter<String> adp = new ArrayAdapter<String>(getApplicationContext(), R.layout.song_layout, R.id.textView, items); 

    lv.setAdapter(adp); 

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { 
      startActivity(new Intent(getApplicationContext(), Player.class).putExtra("pos", position).putExtra("songlist", mySongs));    
     } 
    }); 
} 
public ArrayList<File> findSongs(File root) { 
    ArrayList<File> al = new ArrayList<File>(); 
    File[] files = root.listFiles(); 

    for (File singleFile : files) { 
     if (singleFile.isDirectory() && !singleFile.isHidden()) { 
      al.addAll(findSongs(singleFile)); 
     } else { 
      if (singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".wav")) {    
       al.add(singleFile); 
      } 
     } 
    } 
    return al; 
} 

それが唯一の私は、各ラインの右側にボタンを追加することができますどのように曲のタイトル

で1行を得ましたか。カスタムAdapter.Youを実装する

+2

可能な複製(https://stackoverflow.com/questions/8166497/custom-adapter-for-list-view) – ADM

答えて

0

てみてくださいを使用していたarrayAdapter

1.activity_main.xml

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     tools:context=".MainActivity" > 

     <ListView 
      android:id="@+id/list" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

     </ListView> 

    </RelativeLayout> 

2.list_single.xml

<?xml version="1.0" encoding="utf-8"?> 
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
     <TableRow> 
      <ImageView 
       android:id="@+id/img" 
       android:layout_width="50dp" 
       android:layout_height="50dp"/> 

      <TextView 
       android:id="@+id/txt" 
       android:layout_width="wrap_content" 
       android:layout_height="50dp" /> 

    </TableRow> 
    </TableLayout> 

3.CustomList.Java

public class CustomList extends ArrayAdapter<String>{ 

    private final Activity context; 
    private final String[] web; 
    private final Integer[] imageId; 
    public CustomList(Activity context, 
    String[] web, Integer[] imageId) { 
    super(context, R.layout.list_single, web); 
    this.context = context; 
    this.web = web; 
    this.imageId = imageId; 

    } 
    @Override 
    public View getView(int position, View view, ViewGroup parent) { 
    LayoutInflater inflater = context.getLayoutInflater(); 
    View rowView= inflater.inflate(R.layout.list_single, null, true); 
    TextView txtTitle = (TextView) rowView.findViewById(R.id.txt); 

    ImageView imageView = (ImageView) rowView.findViewById(R.id.img); 
    txtTitle.setText(web[position]); 

    imageView.setImageResource(imageId[position]); 
    return rowView; 
    } 
    } 

4.MainActivity.Java

public class MainActivity extends Activity { 
     ListView list; 
     String[] web = { 
      "Google Plus", 
       "Twitter", 
       "Windows", 
       "Bing", 
       "Itunes", 
       "Wordpress", 
       "Drupal" 
     } ; 
     Integer[] imageId = { 
       R.drawable.image1, 
       R.drawable.image2, 
       R.drawable.image3, 
       R.drawable.image4, 
       R.drawable.image5, 
       R.drawable.image6, 
       R.drawable.image7 

     }; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      CustomList adapter = new 
        CustomList(MainActivity.this, web, imageId); 
      list=(ListView)findViewById(R.id.list); 
        list.setAdapter(adapter); 
        list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

         @Override 
         public void onItemClick(AdapterView<?> parent, View view, 
               int position, long id) { 
          Toast.makeText(MainActivity.this, "You Clicked at " +web[+ position], Toast.LENGTH_SHORT).show(); 

         } 
        }); 

     } 

    } 
[リスト表示のためのカスタム・アダプタ]の
+0

このリンクは、かもしれないが質問に答えるには、答えの本質的な部分をここに含め、参考にするためのリンクを提供する方が良いでしょう。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 18299674) –

+0

お試しいただきありがとうございます。 – user9063147

関連する問題