-3

当我编辑时,当我编辑完成时仍然出错。这是我的代码 MainActivity

package com.example.actionbar;

 import android.os.Bundle;
 import android.app.Activity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}


@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;
}
//ถ้ามีการเลือก actionเกิดขึ้น object ที่นำมาใช้จะเรียกชื่อobject นี้ว่า onOptionItemSelected()
public boolean onOptionItemSelect(MenuItem item){
    //ใช้switch case ในการกำหนดว่าเมือ เลือก action นี้เเล้วทำอะไร
    switch (item.getItemId()){
        case R.id.action_search:
            Toast.makeText(this,"Menu search is selected", Toast.LENGTH_SHORT).show();
        break;
        case R.id.action_settings:
            Toast.makeText(this,"Menu setting is selected", Toast.LENGTH_SHORT).show();
        break;
    default:
        break;
    }
    return true;    
}

}

现在我将字符串添加到 string.xml

<string name="action_search">Search</string>

这是我在 res/menu/main 中的代码

<item
    android:id="@+id/action_search"
    android:icon="@drawable/ic_action_search"
    android:name="@string/action_search"
    android:showAsAction="ifRoom"/>

这是我在 (android:label="@string/Theme.AppCompat.Light") 的清单错误中的代码。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.actionbar"
   android:versionCode="1"
   android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.actionbar.MainActivity"
        android:label="@string/Theme.AppCompat.Light" >          <<<<<<<<<<<error
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

这是我在 R & Theme.AppCompat.Light 中的错误。

 R cannot be resolved to a variable
 No resource found that matches the given name (at 'label' with value   '@string/Theme.AppCompat.Light')

我能怎么做 ??谢谢你

4

2 回答 2

2

你忘了+. 把这个改成android:id="@id/action_search"这个android:id="@+id/action_search"

并确保您已经声明了一个带有名称的字符串,action_search并为其赋予了文件中的Searchstrings.xml。前任。<string name="action_search">Search<string>.

干杯。

于 2013-08-23T05:19:41.827 回答
0

你失踪了+。改成下面

    <item android:id="@+id/action_search"

加号 (+) 表示这是一个新的资源名称,必须创建并添加到我们的资源中(在 R.java 文件中)。

查看id@下的主题

http://developer.android.com/guide/topics/ui/declaring-layout.html

未找到与给定名称匹配的资源(在“标题”处,值为“@string/action_search”)。

确保您已action_searchstrings.xmlres/values/strings.xml中定义

也将其更改为android:showAsAction="ifRoom"并删除它xmlns:yourapp="http://schemas.android.com/apk/res-auto"

你也在使用 ActionBar Compact 吗?如果是这样,请检查以下链接和修改菜单资源下的主题。

http://android-developers.blogspot.in/2013/08/actionbarcompat-and-io-2013-app-source.html

于 2013-08-23T05:20:16.677 回答