私は行き詰まりました。アプリはかなりシンプルですが、このアプリで頭を働かせることはできません。ListView Item を押したときに音を鳴らしたいだけです。簡単かもしれませんが、サウンドをランダムに配置したくありません。サウンドは、正確な ListView アイテムの場所に配置する必要があります。ここに私が今持っているものがあります:
MainActivity.java:
package com.moomob.despicablemesounds;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import ca.demo.demolistview.complex.R;
public class MainActivity extends Activity {
private List<Minions> myMinions = new ArrayList<Minions>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
populateMinionsList();
populateListView();
registerClickCallback();
}
private void populateMinionsList() {
myMinions.add(new Minions("Assemble the Minions", R.drawable.min1));
myMinions.add(new Minions("Banana Minions", R.drawable.min2));
..................
..................
}
private void populateListView() {
ArrayAdapter<Minions> adapter = new MyListAdapter();
ListView list = (ListView) findViewById(R.id.minListView);
list.setAdapter(adapter);
}
private void registerClickCallback() {
ListView list = (ListView) findViewById(R.id.minListView);
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View viewClicked,
int position, long id) {
// Don't know what I should write in here
}
});
}
private class MyListAdapter extends ArrayAdapter<Minions> {
public MyListAdapter() {
super(MainActivity.this, R.layout.item_view, myMinions);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Make sure we have a view to work with (may have been given null)
View itemView = convertView;
if (itemView == null) {
itemView = getLayoutInflater().inflate(R.layout.item_view,
parent, false);
}
// Find the minion to work with.
Minions currentCar = myMinions.get(position);
// Fill the view
ImageView imageView = (ImageView) itemView
.findViewById(R.id.item_icon);
imageView.setImageResource(currentCar.getIconID());
// Make:
TextView makeText = (TextView) itemView
.findViewById(R.id.item_txtMake);
makeText.setText(currentCar.getMake());
return itemView;
}
}
}
Minions.java (コンストラクターとゲッターとセッターをセットアップするためだけに):
package com.moomob.despicablemesounds;
public class Minions {
private String make;
private int iconID;
public Minions(String make, int iconID) {
super();
this.make = make;
this.iconID = iconID;
}
public String getMake() {
return make;
}
public int getIconID() {
return iconID;
}
public void setMake(String make) {
this.make = make;
}
public void setIconID(int iconID) {
this.iconID = iconID;
}
}
ある種のSoundAdapterが必要かもしれませんが、わかりません。私は絶対にこれに固執しているので、誰かが私が欲しいものを理解してくれることを願っています:(