0

我是編程的完整noob,所以感謝您的耐心等待。已創建導航抽屜Android佈局。如何創建onClick操作?

在我的主要活動中,我有一個隨機的報價出現,然後我創建了一個導航抽屜(當然有一個YouTube教程的幫助)。當我點擊它們時,如何讓這些「項目」發生反應?例如,其中一個是詞彙表,所以我需要寫很多。我應該創建一個Activity還是一個Fragment(反正有什麼不同)?我如何在「詞彙表」頂部打開該視圖? 謝謝你一次:)

編輯:(以下是我的相關代碼和佈局)

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/activity_quote_of_the_dat" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.hp.myapp.QuoteOfTheDat" 
    android:background="@color/colorAccent"> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/randomQuote" android:layout_marginTop="147dp" 
      android:textSize="24sp" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:textAlignment="center" 
      android:textColor="@android:color/background_light" /> 

    </LinearLayout> 

    <android.support.design.widget.NavigationView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     app:menu="@menu/navigation_menu" 
     android:layout_gravity="start" 
     android:id="@+id/drawerLayout" 
     app:headerLayout="@layout/navigation_header"> 

    </android.support.design.widget.NavigationView> 
</android.support.v4.widget.DrawerLayout> 

和我的菜單XML

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

    <item android:id="@+id/home" 
     android:icon="@mipmap/ic_home_black_24dp" 
     android:title="Home"/> 

    <item android:id="@+id/glossary" 
     android:icon="@mipmap/ic_book_black_24dp" 
     android:title="Glossary"/> 

    <item android:id="@+id/anxiety" 
     android:icon="@mipmap/ic_lock_outline_black_24dp" 
     android:title="Anxiety"/> 

    <item android:id="@+id/physicality" 
     android:icon="@mipmap/ic_pan_tool_black_24dp" 
     android:title="Physicality"/> 

    <item android:id="@+id/date" 
     android:icon="@mipmap/ic_favorite_black_24dp" 
     android:title="ToBeDefined"/> 

</menu> 

和我的Java文件

package com.example.hp.myapp; 

import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarDrawerToggle; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.MenuItem; 
import android.widget.TextView; 
import java.util.Random; 
import android.content.res.Configuration; 
import android.support.v7.widget.Toolbar; 
import android.widget.Toast; 

public class QuoteOfTheDat extends AppCompatActivity { 

     private DrawerLayout mDrawerLayout; 
     private ActionBarDrawerToggle mToggle; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_quote_of_the_dat); 



     mDrawerLayout = (DrawerLayout) findViewById(R.id.activity_quote_of_the_dat); 
     mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close); 

     mDrawerLayout.addDrawerListener(mToggle); 
     mToggle.syncState(); 

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item){ 

     if (mToggle.onOptionsItemSelected(item)){ 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
+0

使用Android Studio的模板 –

回答

0

首先,您需要在導航視圖上設置onClickListener,如下所示: -

yourNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 

@Override 
public boolean onNavigationItemSelected(MenuItem menuItem) { 
     switch(menuItem.getItemId()) { 
      // Here in each case statement you need to pass the id of the menu items and then call startActivity(new Intent()) in each case statement. 
      case R.id.your_item: 
      startActivity(new Intent(currentClass.this, nextActivity.class)); 
      break; 
     } 
+0

我的導航視圖是什麼? –

+0

您正在使用ID「drawerLayout」在第一個xml文件中顯示導航視圖。 所以,你需要先聲明此ID在Java文件 NavigationView navigationView =(NavigationView)findViewById(R.id.drawerLayout); 謝謝! –

+0

我仍然收到錯誤:(它說它無法解析「setNavigationItemSelectedListener」和「onNavigationItemSelectedListener」和「menuItem」上的符號。再次感謝您 –