2017-08-30 11 views
0

私はアンドロイド用のアプリケーションをコーディングすることを学んでいます。QRコードを読み取るアプリケーションをコーディングしようとしていますが、オプションメニューを追加したいと思います。私はそれを行う小さなコードを持っていますが、QRリーダーアプリを追加しようとするとメニューが表示されません。これまでに何が間違っているのか教えていただけますか?Android StudioのQRリーダーアプリケーションにオプションメニューを追加しますか?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="114dp"> 

     <Button 
      android:id="@+id/button" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_column="0" 
      android:layout_row="3" 
      android:onClick="onClick" 
      android:text="Scan QR" /> 
    </GridLayout> 
</LinearLayout> 

activity_main.xml

MainActivity.java

import android.app.Activity; 
import android.os.Bundle; 

import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Toast; 

import android.view.View; 
import android.app.AlertDialog; 
import android.util.Log; 
import com.google.zxing.Result; 
import me.dm7.barcodescanner.zxing.ZXingScannerView; 

public class MainActivity extends Activity implements ZXingScannerView.ResultHandler { 
    private ZXingScannerView mScannerView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 
    // Here I added the menu to the qr app 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.item1: 
       Toast.makeText(getApplicationContext(),"Item 1 Selected",Toast.LENGTH_LONG).show(); 
       return true; 

      case R.id.item2: 
       Toast.makeText(getApplicationContext(),"Item 2 Selected",Toast.LENGTH_LONG).show(); 
       return true; 

      case R.id.item3: 
       Toast.makeText(getApplicationContext(),"Item 3 Selected",Toast.LENGTH_LONG).show(); 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 
//Here ends the part of the menu 

    public void onClick(View v){ 
     mScannerView = new ZXingScannerView(this); 
     setContentView(mScannerView); 
     mScannerView.setResultHandler(this); 
     mScannerView.startCamera(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     mScannerView.stopCamera(); 
    } 

    @Override 
    public void handleResult(Result result) { 
     Log.w("handleResult", result.getText()); 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Scan result"); 
     builder.setMessage(result.getText()); 
     AlertDialog alertDialog = builder.create(); 
     alertDialog.show(); 

    } 
} 

Menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/item1" 
     android:title="Item 1"/> 
    <item android:id="@+id/item2" 
     android:title="Item 2"/> 
    <item android:id="@+id/item3" 
     android:title="Item 3"/> 
</menu> 

私がことを知っています私は別のアプリとして単独でテストし、qrリーダーも単独で動作するので、オプションメニューは単独で動作しますが、それらを組み合わせようとするとメニューは表示されません。私はアンドロイドアプリをコーディングしている初心者なので、あなたの指導に感謝します。おかげ

答えて

0

は、あなたが与え、あなたのメニュー名はmenu.xmlではなく、あなたがgetMenuInflater().inflate(R.menu.main, menu);

を与えている、あなたは

getMenuInflater().inflate(R.menu.menu, menu);

+0

getMenuInflater().inflate(R.menu.main, menu);

を交換する必要がありますはい、私はタイプミスがありましたそこには、私はそれを変更しましたが、結果は同じです。アプリは次のようになります:http://i.imgur.com/WVbn1nB.png –

+0

テーマを設定しましたか? –

関連する問題