1

私は行き詰まりました。アプリはかなりシンプルですが、このアプリで頭を働かせることはできません。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が必要かもしれませんが、わかりません。私は絶対にこれに固執しているので、誰かが私が欲しいものを理解してくれることを願っています:(

4

1 に答える 1