-1

メニューのアイテムがボタンのように機能するという問題があり、解決方法がわかりません。

メニューのアイテムで、次のように展開可能なアイテムを参照します。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/item1" android:title="Item1" />
  <item android:id="@+id/item2" android:title="Item2" />
</menu>

それを定義する方法がわからず、次のようにボタンのように使用します。

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  Button button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
      String uri=null;

      Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
      intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
                      RingtoneManager.TYPE_RINGTONE);
      if (uri !=null) {
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                        Uri.parse(uri));        
      } else {
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                        (Uri)null);
      }

      startActivityForResult(intent, 1);
    }
  });

前もって感謝します、

4

1 に答える 1

0

だから、あなたはメニューを実装したいと思っています。API 10 以下の場合、menu.xml を res/menu/ に置き、アクティビティで次の 2 つの関数をオーバーライドします。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
    case R.id.item1:
        // Do something
        break;
    case R.id.item2:
        // Do something else
        break;
    }
    return true;
}

API 11 以降については、こちらで説明されているように、アクション バーの使用を検討してください。

アップデート

設定メニューについては、findPreference() を使用し、カスタム setOnPreferenceClickListener() を定義する必要があります。ここにコード スニペットをコピーするのではなく、次の 3 つの詳細なチュートリアルのいずれかに従ってください。

于 2012-05-05T16:11:38.473 に答える