我还在学习在Android上编程,这是我第一次创建导航抽屉。 我知道还有其他方法来创建导航抽屉,但在我看来,这是我理解的最简单方法,但现在我不知道如何在我的所有活动中扩展它。
这是代码:
Dashboard.java
package com.example.alexandre.blueprint_apocalypse;
import android.content.Intent;
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.view.View;
import android.widget.ImageButton;
public class Dashboard extends AppCompatActivity {
//Menu variables
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mToggle;
//Buttons
public ImageButton profile_button;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
setTitle(R.string.dashboardLabel);
//Create Menu
mDrawerLayout = (DrawerLayout) findViewById(R.id.activity_dashboard);
mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
mDrawerLayout.addDrawerListener(mToggle);
mToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true); //Activate hamburguer button
//Change Activity using buttons
changeActivity();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(mToggle.onOptionsItemSelected(item))
{
return true;
}
return super.onOptionsItemSelected(item);
}
activity_dashboard.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/dashboard_profile_icon"
android:id="@+id/dashoard_profile_button"
android:layout_marginTop="77dp"
style="?android:attr/borderlessButtonStyle"
android:background="@null"
android:scaleType="fitXY"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="47dp"
android:layout_marginStart="47dp"
android:contentDescription="" />
</RelativeLayout>
<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.support.design.widget.NavigationView>
navigation_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<item android:id="@+id/menu_option_dashboard"
android:title="Dashboard">
</item>
<item android:id="@+id/menu_option_profile"
android:title="Profile">
</item>
<item android:id="@+id/menu_option_defenseHistory"
android:title="Defense History">
</item>
<item android:id="@+id/menu_option_encyclopedia"
android:title="Encyclopedia">
</item>
<item android:id="@+id/menu_option_worldScore"
android:title="World Score">
</item>
如何将此扩展到我的所有活动?
答案 0 :(得分:1)
以下是一个link示例,它将导航抽屉添加到多个activities
activity
名为BaseActivity
的愿望用作所有使用导航抽屉的活动的父级。因此,您的Dashboard
课程可以扩展新的activity
。示例中的MainActivity
是扩展activity
的{{1}}。
希望这会有所帮助。
答案 1 :(得分:0)
将导航视图添加到您希望导航抽屉出现的所有活动。
但您必须手动维护每个抽屉中物品的检查状态
按 DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = domFactory.newDocumentBuilder();
String xml = "<root><Title>test</Title></root>";
Document dDoc = builder.parse(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)));
XPath xPath = XPathFactory.newInstance().newXPath();
Node node = (Node) xPath.evaluate("//Title", dDoc, XPathConstants.NODE);
System.out.println(node.getTextContent());
final String text = node.getTextContent().trim();
if(text.matches("^\\\".*\\\"$")){
// Between double quotes
}
else{
// No quotes
}