2012-05-05 9 views
-2

ボタンのように動作するメニューの項目に関する問題があり、解決方法がわかりません。メニューのアイテムはボタンのように動作します

<?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); 
    } 
    }); 
私はこのような拡張項目にrefeerメニューから項目で

ありがとうございます。

+0

は、私は非常にあなたが求めているものを理解していない、あなたは再可能性あなたの質問を書いてください? – Sam

+0

@Sam私のR.layoutには、次のような2つの項目を持つmenu.xmlがあります。

<商品のandroid:ID = "@ + ID/ITEM2" アンドロイド:代わりにタイトル= "アイテム2" /> R.layoutのmain.phpで定義されたButtonを持っています。私のクラスではActivityを拡張しています。** item **は** Button.setOnClickListenerのistead(新しいView.OnClickListener) ** ** item.setOnClickListener(新しいView.OnClickListener)**が必要ですが、このように定義することはできません – Johannes

答えて

0

メニューを実装します。 API 10以下の場合は、解像度/メニューでmenu.xmlを入れて/し、あなたの活動にこれらの二つの機能をオーバーライドします。API 11+のために

@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; 
} 

更新explained here.としてアクションバーを使用することを検討してください

findPreference()を使用してカスタムのsetOnPreferenceClickListener()を定義すると便利です。むしろここにコードスニペットをコピーするよりも、これら三つの詳細なチュートリアルのいずれかに従います。

+0

ありがとうございます。しかし、代わりにオプションまたはコンテキストメニューを作成したくありません。これらの2つは、私はPreferenceActivity 'のような項目を持つメニューを作りたいと思う' ' – Johannes

+0

この画像のようですか? http://androidpartaker.files.wordpress.com/2010/07/ringtone_preference.jpg – Sam

+0

実体験、このように:[リンク](http://picz.ro/index.php?id=145e02ac4b9373e0dce5ec469d6e82f5) – Johannes

関連する問題