0

メニューボタンをクリックして関数を呼び出すと、その関数は入力用のウィンドウをポップアップ表示します。次の行を activity_main.xml に追加しました

android:onClick="getURL"

私のmainActivity.javaで関数を定義しました:

public void getURL(View view) {...}

ただし、アプリをロードすると、次のようになります。

01-31 09:59:13.479: E/AndroidRuntime(761): FATAL EXCEPTION: main
01-31 09:59:13.479: E/AndroidRuntime(761): android.view.InflateException: Couldn't resolve menu item onClick handler getURL in class com.example.remoteswitch.MainActivity

私のメニュー設定は次のようになります:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/menu_settings"
    android:onClick="getURL"/>

なぜそれが私に起こるのですか?

4

3 に答える 3

6

a のクリックを処理する方法Menu Itemは次のとおりです。

まず、オプション メニューを設定します。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater mnuInflater = getSupportMenuInflater();
    mnuInflater.inflate(R.menu.your_menu_xml, menu);        
    return true;
}

ここでクリックを処理します。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_settings:
        // EITHER CALL THE METHOD HERE OR DO THE FUNCTION DIRECTLY
        yourMethod();

        return true;

    default:
        return super.onOptionsItemSelected(item);
    }
}

そして、yourMethod()ここで機能を実行します:

private void yourMethod() {
    // TODO Auto-generated method stub      
}

onClickメソッドに関しては、そのメソッドが有効/機能するかどうかわかりませんOptions Menu。上記のコードは、とにかく正常に動作します。

于 2013-01-31T10:20:43.207 に答える
1
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.menuxml_name, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch(item.getItemId())    
    {
        case R.id.menu_settings:
            getURL();   
            break;
    }
    return super.onOptionsItemSelected(item);
}

操作を簡単に実行できるように、これらのオーバーライド メソッドをアクティビティに入れてみてください

于 2013-01-31T10:23:44.420 に答える