2017-03-06 41 views
0

你好,我有一個創建應用程序的問題..我是相對較新的編碼,我試圖將兩個模板連接到一個應用程序,我有這個模板應用程序與QR掃描儀和導航抽屜活動的另一個模板的應用程序。我的問題是,我有抽屜式導航欄添加到QR掃描應用或QR掃描儀添加到另一個應用程序片段...導航抽屜QR掃描器應用程序android studio

QR掃描應用程序如下

https://github.com/varvet/BarcodeReaderSample

這是很基本的有按鈕,按下它掃描QR碼或條形碼

現在我想添加導航抽屜裏有,但我真的不知道該如何,因爲我已經試過,但他們總是導致多個錯誤

我的抽屜式導航欄應用程序是下面

MainActivity

package net.simplifiedcoding.navigationdrawerexample; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentTransaction; 
import android.view.View; 
import android.support.design.widget.NavigationView; 
import android.support.v4.view.GravityCompat; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 



public class MainActivity extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 



     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 

     //add this line to display menu1 when the activity is loaded 
     displaySelectedScreen(R.id.nav_menu1); 
    } 

    @Override 
    public void onBackPressed() { 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     if (drawer.isDrawerOpen(GravityCompat.START)) { 
      drawer.closeDrawer(GravityCompat.START); 
     } else { 
      super.onBackPressed(); 
     } 
    } 

    @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) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    private void displaySelectedScreen(int itemId) { 

     //creating fragment object 
     Fragment fragment = null; 

     //initializing the fragment object which is selected 
     switch (itemId) { 
      case R.id.nav_menu1: 
       fragment = new Menu1(); 
       break; 
      case R.id.nav_menu2: 
       fragment = new Menu2(); 
       break; 
      case R.id.nav_menu3: 
       fragment = new Menu3(); 
       break; 
     } 

     //replacing the fragment 
     if (fragment != null) { 
      FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
      ft.replace(R.id.content_frame, fragment); 
      ft.commit(); 
     } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
    } 


    @SuppressWarnings("StatementWithEmptyBody") 
    @Override 
    public boolean onNavigationItemSelected(MenuItem item) { 

     //calling the method displayselectedscreen and passing the id of selected menu 
     displaySelectedScreen(item.getItemId()); 
     //make this method blank 
     return true; 
    } 


} 

我的菜單1代碼,我想掃描儀

package net.simplifiedcoding.navigationdrawerexample; 

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

/** 
* Created by Belal on 18/09/16. 
*/ 


public class Menu1 extends Fragment { 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     //returning our layout file 
     //change R.layout.yourlayoutfilename for each of your fragments 
     return inflater.inflate(R.layout.fragment_menu_1, container, false); 
    } 


    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     //you can set the title for your toolbar here for different fragments different titles 
     getActivity().setTitle("Skanneri"); 
    } 
} 

我activity_main_drawer.xml如下

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <group android:checkableBehavior="single"> 
     <item 
      android:id="@+id/nav_menu1" 
      android:icon="@android:drawable/ic_menu_camera" 
      android:title="QR skanneri" /> 
     <item 
      android:id="@+id/nav_menu2" 
      android:icon="@android:drawable/ic_menu_mapmode" 
      android:title="Kartta" /> 
     <item 
      android:id="@+id/nav_menu3" 
      android:icon="@android:drawable/ic_menu_help" 
      android:title="Tietoa eri aloista" /> 

    </group> 

</menu> 

我fragment_menu_1.xml,我想它會掃描QR碼的按鈕下面

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



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="@style/TextAppearance.AppCompat.Button" 
     android:text="Paina nappia skannataksesi QR-koodin" 
     android:id="@+id/textView" 
     android:layout_marginTop="27dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

編輯!!!! 我的build.gradle文件具有以下

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion "24.0.2" 

    defaultConfig { 
     applicationId "net.simplifiedcoding.navigationdrawerexample" 
     minSdkVersion 16 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.2.0' 
    compile 'com.android.support:design:24.2.0' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:support-v13:23.0.1' 
    compile 'com.google.zxing:core:3.2.0' //QRCode scanner 
    compile 'com.facebook.rebound:rebound:0.3.8' //spring animation 


} 

我真的需要幫助,謝謝!

+0

所需的依賴關係是什麼你有錯誤嗎? –

+0

@LaurIvan這些是我得到的錯誤http://imgur.com/a/ol9Y0 – relo

+0

請添加依賴關係。你可能會錯過一些東西。 –

回答

0

好像你錯過了一些依賴項,因爲你只包含core包。嘗試包括其他包爲好,也許android-core爲你的錯誤似乎指向Android的特定包

0
  1. 包括第一
  2. 清理項目
  3. 重新建立搖籃