java - 我的上下文菜单中有一个简单的错误,有人可以解决吗?

标签 java android android-contextmenu

我正在尝试让上下文菜单适用于项目列表,如下所示,但我不确定当单击项目到列表名称时如何链接。 >>>>> 的那一行是我认为我错了的那一行。有人可以看看我做错了什么吗? 这是我的 Main_Activity:

import java.util.ArrayList;
import android.app.ListActivity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {
private ArrayList<Sound> mSounds = null;
private SoundAdapter mAdapter = null;
static MediaPlayer mMediaPlayer = null;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerForContextMenu(getListView());
this.getListView().setSelector(R.drawable.selector);
//create a simple list
mSounds = new ArrayList<Sound>();
Sound s = new Sound();
s.setDescription("Anjels");
s.setSoundResourceId(R.raw.anjels);
mSounds.add(s);
s = new Sound();
s.setDescription("Aggro");
s.setSoundResourceId(R.raw.aggro);
mSounds.add(s);
s = new Sound();
s.setDescription("Axo");
s.setSoundResourceId(R.raw.axo);
mSounds.add(s);
s = new Sound();
s.setDescription("Basix");
s.setSoundResourceId(R.raw.basix);
mSounds.add(s);
s = new Sound();
s.setDescription("Bender");
s.setSoundResourceId(R.raw.bender);
mSounds.add(s);
s = new Sound();
s.setDescription("Blimp");
s.setSoundResourceId(R.raw.blimp);
mSounds.add(s);
mAdapter = new SoundAdapter(this, R.layout.list_row, mSounds);
setListAdapter(mAdapter);
}
@Override
public void onListItemClick(ListView parent, View v, int position, long id){
Sound s = (Sound) mSounds.get(position);
MediaPlayer mp = MediaPlayer.create(this, s.getSoundResourceId());
mp.start();

}@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
  }


public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    >>>>>>String[] names = getResources().getStringArray(mSounds);
    switch(item.getItemId()) {
    case R.id.setasnotification:
          Toast.makeText(this, "Applying " + getResources().getString(R.string.setas) +
                      " context menu option for " + names[(int)info.id],
                      Toast.LENGTH_SHORT).show();
          return true;
    default:
          return super.onContextItemSelected(item);
    }
}}

最佳答案

CHange String[] 名称 = getResources().getString(R.array.??????);

String[]名称= getResources().getStringArray(R.array.?????);

您可以引用android docs on String Resources .

字符串数组资源示例:

XML file saved at res/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="planets_array">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
    </string-array>
</resources>

访问行星数组:

String[] names = getResources().getStringArray(R.array.planets_array); 

关于java - 我的上下文菜单中有一个简单的错误,有人可以解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18132403/

相关文章:

android - Gradle 无法编译 .aar 文件

android - 自定义弹出菜单

android - 如何在android的上下文菜单中显示图标?

java - 是否可以在布局中混合使用 `SurfaceView` 和另一个 `View` ?

java - 如何在 Java 9 中按类获取模块名称?

java - 我如何告诉 Dozer 使用编程 api 绕过每个字段的映射 null 或空字符串值?

Java 泛型扩展

android - 本地和远程数据的身份验证的体系结构/实现

android - 如何获取国家及其城市的列表?

android - 如何在上下文操作栏/ActionMode 中显示文本和图标?