在操作栏搜索图标不会出现

问题描述:

我从以下PDF Docant书官方Android教程。出于某种原因,我的搜索图标不会显示出来。我包括来自holo_dark的ic_action_search.png照片,以及使用全暗光与黑暗动作栏主题的即时通讯。 下面是代码,没有被蚀发现错误回报,最小SDK是设置为11在操作栏搜索图标不会出现

DisplayMessageActivity.java文件

package com.example.myfirstapp1; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.widget.TextView; 

public class DisplayMessageActivity extends ActionBarActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
// Get the message from the intent 
    Intent intent = getIntent(); 
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 
// Create the text view 
    TextView textView = new TextView(this); 
    textView.setTextSize(40); 
    textView.setText(message); 
// Set the text view as the activity layout 
    setContentView(textView); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu items for use in the action bar 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.main_activity_actions, menu); 
return super.onCreateOptionsMenu(menu); 
} 


@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(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
    } 
} 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
<!-- Search, should appear as action button --> 
<item android:id="@+id/action_search" 
android:icon="@drawable/ic_action_search" 
android:title="@string/action_search" 
android:showAsAction="always" /> 
<!-- Settings, should always be in the overflow --> 
<item android:id="@+id/action_settings" 
android:title="@string/action_settings" 
android:showAsAction="never" /> 
</menu> 

,我认为你的错误是在你的onCreate method,在这一行:

setContentView(textView);

您应该将内容视图设置为您的视图的XML,而不是一个TextView。

你的onCreate应该是这个样子:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(the_name_of_your_xml_for_this_activity); 
    // Get the message from the intent 
    Intent intent = getIntent(); 
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 
    // Create the text view 
    TextView textView = new TextView(this); 
    textView.setTextSize(40); 
    textView.setText(message); 
} 
+0

感谢,但,当我把这个XML活动错误activity_display_message的我的名字不能被解析为一个变量出现 – brumbrum 2014-09-23 19:42:58

+0

尝试setContentView(R.layout.activity_display_message) – 2014-09-23 19:45:24

+0

我认为我们正在取得进展!谢谢!它将@ string/action_search后面的标题放入了溢出。我的操作栏中仍然没有ic_action_search图标。 – brumbrum 2014-09-23 20:00:25

我会建议你使用动作条库http://actionbarsherlock.com/ 为了获得更好的结果的任何动作条相关行动

我认为你需要先定义它RES/valuse/drawables.xml

<item name="ic_action_search" type="drawable">@android:drawable/ic_menu_search</item> 

检查照片,

enter image description here

如果你有一个.bng照片你必须通过另一种方式来将其导入以绘制不是使用

android:src="@drawable/ic_action_search"