[英]Icon In ToolBar does not appear
我剛剛創建並包含工具欄的活動,我在右邊的工具欄中放了一個勾號圖標,但是當我運行應用程序時,勾選圖標沒有出現在工具欄中這是我的班級
package mediaclub.app.paymob;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.ListView;
import java.util.ArrayList;
import mediaclub.app.paymob.Adapters.ContactsAdapter;
public class AddMembersActivity extends Activity {
ArrayList<Contact> listContacts;
ListView lvContacts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_members);
listContacts = new ContactFetcher(this).fetchAll();
lvContacts = (ListView) findViewById(R.id.lvContacts);
ImageView checkContacts = (ImageView) findViewById(R.id.checkedId);
ContactsAdapter adapterContacts = new ContactsAdapter(this, listContacts);
lvContacts.setAdapter(adapterContacts);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.iconmenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(android.view.MenuItem item) {
switch (item.getItemId()) {
case R.id.checkedId:
Intent i = new Intent(AddMembersActivity.this, AddMembersActivity.class);
startActivity(i);
return true;
}
return super.onOptionsItemSelected(item);
}
}
這是菜單
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/checkedId"
android:icon="@drawable/checked"
android:title="@string/check"
app:showAsAction="always"/>
</menu>
這是XML文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="#ffffff"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="mediaclub.app.paymob.AddMembersActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:backgroundTint="#3cb5a4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_weight="91"
android:orientation="horizontal"
android:weightSum="100" >
<ListView
android:id="@+id/lvContacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
</LinearLayout>
</LinearLayout>
對不起,如果事情不清楚,如果有人知道如何解決這個案件,請回答我抱歉我的英語不好
在onCreate()
添加它,初始化工具欄
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
你永遠不會設置問題的工具欄嘗試這個方法並從onCreate調用它
public void showToolBar() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("title for toolbar");
setSupportActionBar(toolbar);
//toolbar.setNavigationIcon(R.drawable.ic_toolbar_arrow);
toolbar.setNavigationOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
//handling the onclick
}
}
);
}
1.嘗試從AppCompatActivity
而不是Activity
擴展AddMembersActivity
。
public class AddMembersActivity extends AppCompatActivity {
.............
..................
}
2.在onCreate()
方法中,使用方法setSupportActionBar()
初始化Toolbar
窗口小部件並將其用作ActionBar
。
public class AddMembersActivity extends AppCompatActivity {
ArrayList<Contact> listContacts;
ListView lvContacts;
Toolbar mToolBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_members);
mToolBar = (Toolbar) findViewById(R.id.toolbar);
if(mToolBar != null) {
setSupportActionBar(mToolBar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
listContacts = new ContactFetcher(this).fetchAll();
lvContacts = (ListView) findViewById(R.id.lvContacts);
ImageView checkContacts = (ImageView) findViewById(R.id.checkedId);
ContactsAdapter adapterContacts = new ContactsAdapter(this, listContacts);
lvContacts.setAdapter(adapterContacts);
}
.................
............................
}
僅供參考 ,您必須在build.gradle
添加以下依賴build.gradle
才能使用AppCompatActivity
。
dependencies {
..........
..............
compile 'com.android.support:appcompat-v7:25.1.0'
}
希望這會有所幫助〜
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.