我想从列表视图中获取所选项目.
当维护一个longclick listview项时,我得到上下文菜单(一切正常)但我想知道如何检测什么是POSITION哪个做了longclick
1º声明上下文菜单中的项目
/res/menu/NAMEOFXMLUWANT.XML
像这样
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/Abrir"
android:title="@string/Abrir" />
<item android:id="@+id/Editar"
android:title="@string/Edit" />
<item android:id="@+id/Borrar"
android:title="@string/delete" />
<item android:id="@+id/Alarma"
android:title="@string/Alarma" />
</menu>
Run Code Online (Sandbox Code Playgroud)
你想要的2º-AFTER在LIST VIEW中进行上下文菜单
lista = me listview
lista = (ListView) findViewById(R.id.Lista);
final ArrayAdapter<String> adaptador = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, ficheros);
lista.setLongClickable(true);
lista.setAdapter(adaptador);
lista.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) { //here u set u rute
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
}
});
Run Code Online (Sandbox Code Playgroud)
3º和FINALY,你设置你点击项目
@Override
public boolean onContextItemSelected(MenuItem item) { …Run Code Online (Sandbox Code Playgroud) 我不知道为什么它不起作用,logcat中没有记录错误,但我听不到声音.
public static void DeclararSonido(int numero, Context contexto){
switch(numero){
case 0:
mp = MediaPlayer.create(contexto, R.raw.alan);
break;
}
}
public static void TocarPiedra( int posicion, Context contexto){
DeclararSonido(posicion, contexto);
mp.start();
mp.stop();
mp.release();
}
public static void TocarSirena(Context contexto){
MediaPlayer mp2= MediaPlayer.create(contexto, R.raw.doh);
mp2.start();
mp2.stop();
mp2.release();
}
Run Code Online (Sandbox Code Playgroud)
如果我擦除mp2.stop();和mp2.release();AND mp.stop();并且mp.release();应用程序播放声音,但文件未发布...