2014-07-22 4 views
-1

안드로이드 코드를 작성 중입니다 ... 오른쪽 상단에 메뉴 항목 ("+")을 만들었습니다. 내 코드에서 볼 수있는 것처럼이 항목에 대해 OnClick을 정의했지만 MyApp가 실행되지 않고 불행히도 중지되었다고 말합니다. 그 전에 나는 사용자가 해당 항목을 클릭하고 작동했을 때를 위해안드로이드에서 OnClick이 작동하지 않습니다.

public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.add: 
       // Toast.makeText(this, "Adding button selected", Toast.LENGTH_SHORT).show(); 
       return true; 
      default: 
       return true; 
     } 
    } 

을 사용했다. 그러나 나는이 방법으로 무엇을해야 하는지를 알아야합니까?! 그 후 나는 해당 항목을 누르면 대화 쇼와 내가 생각하는 내가이 방법을 사용해야 있도록 레이아웃 (대화)를 만들고 싶어하기 때문에 그

myActivity :

package com.example.myapp; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.Dialog; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.*; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MyActivity extends Activity { 
    /** 
    * Called when the activity is first created. 
    */ 
    //@Override 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 

    public boolean onCreateMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     return true; 
    } 

    public boolean onCreateOptionsMenu(Menu menu) { 

     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 

    public void AddOnClick (View view) { 
     Toast.makeText(this, "Button 1 pressed", 
       Toast.LENGTH_LONG).show(); 
    } 

} 

menu.xml :

<?xml version="1.0" encoding="utf-8"?> 

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/add" 
      android:icon="@drawable/plus" 
      android:title="Adding" 
      android:orderInCategory="50" 
      android:showAsAction="always" 
      android:onClick="AddOnClick" 
    /> 
</menu> 

내가 틀렸어?! 대화의 권리를 보여주기위한 나의 방법인가 아니면 다른 것을해야합니까?!

+2

에 온 클릭을 앱이 충돌하는 경우, 스택 추적 – Shlublu

+1

제거 안드로이드를 게시하시기 바랍니다 : onClick in menu, 당신은 그것을 필요가 없습니다 – Sandro

답변

-1
public boolean onCreateMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    return true; 
} 

변경과 같이 사전에 TNX는 :

public boolean onCreateMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater().inflate(R.menu.addXml, menu); 
    return true; 
} 
+0

올바른 방법이 없다고 생각한다면 올바른 방법은 없습니다 – EpicPandaForce

+0

반환 할 시도해 볼 수있는 방법이 없습니다. super.onCreateOptionsMenu (menu); – ihsanbal

+0

'inflate()'의 반환 값은'void'입니다. 코드가 컴파일되지 않습니다. 형식이 없어도 다음과 같이됩니다. @Override public boolean onCreateOptionsMenu (메뉴 메뉴) { getMenuInflater(). inflate (R.menu.container, menu); return super.onCreateOptionsMenu (menu); } – EpicPandaForce

0

서명이 잘못되었습니다. 그것은 다음과 같이이 마십시오 MenuItem을

1

내에서 선언되어 있기 때문에

public void AddOnClick (MenuItem item) 

하고 안드로이드 제거해야합니다 : 메뉴

MenuInflater menuInflater = getMenuInflater(); 
     menuInflater.inflate(R.menu.addXml, menu); 
+0

return super.onCreateOptionsMenu (menu); – EpicPandaForce

관련 문제