我想通过长按列表项在列表视图中将歌曲设置为铃声,闹钟铃声或消息铃声等。 我想显示一个执行这些操作的对话框。 如何通过长按列表项并在对话框中设置操作来显示对话框? 请帮我...

com.example.ring;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class Naat extends Activity implements
        OnItemClickListener {

    private ListView listView;
    public static MediaPlayer mp;
    Button bt;
    PopAdapter adapter;
    ArrayList<String> dataItems = new ArrayList<String>();
    public static int[] rings = {R.raw.arabicmusic, R.raw.arabicmusic1, R.raw.arabicmusic12,
            R.raw.arabicmusic13, R.raw.arabicmusic14, R.raw.arabicmusic15,
            R.raw.arabicmusic18, R.raw.arabicmusic16, R.raw.arabicmusic17};
    public static int imgadrss = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_naat);
        String[] dataArray = getResources().getStringArray(R.array.listdata);
        List<String> dataTemp = Arrays.asList(dataArray);
        dataItems.addAll(dataTemp);
        listView = (ListView) findViewById(R.id.listnaat);
        //  bt = (Button) findViewById(R.id.button1);
        adapter = new PopAdapter(Naat.this, dataItems);
        //  adapter.setCustomButtonListner(MainActivity.this);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(this);
    }

    //  @Override
    //  public void onButtonClickListner(int position, String value) {
    //      mp.create(this, rings[position]);
    //      mp.start();
    //
    //      Toast.makeText(MainActivity.this, "Button click " + value,
    //              Toast.LENGTH_SHORT).show();
    //
    //  }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(this, "" + position, 2000).show();
        imgadrss = rings[position];
    }
}

转接器类别

com.example.ring;

import java.util.ArrayList;

import android.content.Context;
import android.media.MediaPlayer;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class NaatAdapter extends ArrayAdapter<String> {
    customButtonListener customListner;

    public interface customButtonListener {
        public void onButtonClickListner(int position, String value);
    }

    public void setCustomButtonListner(customButtonListener listener) {
        this.customListner = listener;

    }

    private Context context;
    private ArrayList<String> data = new ArrayList<String>();

    public NaatAdapter(Context context, ArrayList<String> dataItem) {
        super(context, R.layout.singlerow, dataItem);
        this.data = dataItem;
        this.context = context;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(R.layout.singlerow, null);
            viewHolder = new ViewHolder();
            viewHolder.text = (TextView) convertView
                    .findViewById(R.id.textView1);
            viewHolder.button = (Button) convertView.findViewById(R.id.button1);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        final String temp = getItem(position);
        viewHolder.text.setText(temp);
        viewHolder.button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (customListner != null) {
                    customListner.onButtonClickListner(position, temp);
                }
                // MainActivity.mp.create(context, MainActivity.imgadrss);
                // MainActivity.mp.start();
                MediaPlayer mp = MediaPlayer.create(context, Naat.rings[position]);

                if (mp.isPlaying()) {
                    if (mp != null) {
                        mp.pause();
                    }
                } else {
                    if (mp != null) {
                        mp.start();
                    }
                }
                // mp.stop();
                Toast.makeText(context, "" + position, 2000).show();
            }
        });
        return convertView;
    }

    public class ViewHolder {
        TextView text;
        Button button;
    }
}

#1楼 票数:1

你可以用这个

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

        public boolean onItemLongClick(AdapterView<?> arg0, View v,
                int index, long arg3) {
            // TODO Auto-generated method stub
             Log.d("in onLongClick");
             //Open alert dialog here
            return true;
        }
}); 

  ask by Zar Noxh translate from so

未解决问题?本站智能推荐:

1回复

具有自定义列表视图的警报对话框

我想用自定义列表视图创建一个警报对话框。 为此,我为列表视图创建了自定义布局和适配器。 我想要带有单项选择的警报对话框。 因此,我为对话框设置了适配器。 现在我要从数组列表中获取选定的项目? 编辑: customAlertAdapter
1回复

在警报对话框中实现自定义列表视图

我正在警报对话框中实现自定义列表视图。 在将java.util.ArrayList无法应用于java.util.ArrayList添加到自定义适配器时,列表上显示错误。 我创建了一个查询以从表中获取标题列表。 我想在警报对话框中显示此列表。 怎么了 CustomAlertAdap
4回复

自定义列表视图的自定义警报对话框

我需要创建一个单一选择的自定义警报对话框。 但物品有自己的布局: [视图(只是颜色)_______ TEXT_______RADIOBUTTON] 我为listview,自定义适配器创建了一个自定义布局,并且结果很好 但我不能做出单一选择,没有一个听众设置为listview ..
1回复

自定义列表视图项中的对话框单击

我正在开发一个从Web服务获取数据并将其显示在列表视图中的应用程序。我正在使用自定义列表视图适配器。 在列表的一行中有两个按钮。 我想在单击按钮时显示一个对话框,并且在按下对话框按钮时也要对其执行一些操作。 这是我的适配器类: 我已经尝试了一个dialoginterface ..但我
2回复

如何在Android片段中添加具有列表视图和搜索功能的自定义对话框

我想创建如下所示的完全相同的视图, 我使用showDialog函数显示对话框。 帮助我实现显示列表视图和搜索列表视图功能。 编辑代码
1回复

如何从我的列表视图项上的警报对话框(单选)中设置选定的值?

如何从我的列表视图项上的警报对话框(单选)中设置选定的值?...我的场景是: - 我有带有按钮和文本视图的列表视图项 - 单击我的列表视图项中的按钮,打开对话框 - 选择对话框中单个选择列表中的值 - 想要在我的列表视图项内的 textview 中的对话框中显示此选定值这是我的代码: 问题是:通过在
1回复

带按钮的警报对话框中的自定义ListView

我有一个自定义的listview,每行包含两个按钮,我在努力的是这些按钮的侦听器。 我的Listview包含在AlertDialog中,这是我拥有的代码 如您所见,我已经在ListView自身上尝试了ItemClickListerner,并在AlertDialog上尝试了itemSelec
2回复

我可以使用自定义列表显示在警报对话框中吗?

我创建了一个自定义适配器,以在来自drawable资源的每个列表项中显示不同的图像。 现在,自定义适配器在列表视图中运行良好。 现在,我需要以AlertDialog或任何其他方式显示列表,而不是以其他布局显示。