出于某种原因,我的操作菜单在我的Android Studio应用中消失了。我按照教程学习如何创建一个Android应用程序,但我最终遇到了这个问题。
教程I使用atm:http://www.raywenderlich.com/56109/make-first-android-app-part-2
这是我的main.xml的样子:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Share item -->
<item
android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass= "android.widget.ShareActionProvider" />
</menu>
menu_main.xml:
<!-- Defines the menu item that will appear on the Action Bar in MainActivity -->
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Share item -->
<item
android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass= "android.widget.ShareActionProvider"
tools:ignore="AppCompatResource" />
</menu>
我在这段代码中做错了什么?我没有收到任何错误。我几乎从教程中复制粘贴了这个。
我不认为我的java代码,但仍然在这里,有人认为问题出在该代码中。 MainActivity.java:
package android.stefan.testappnieuw;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
public class MainActivity extends Activity implements View.OnClickListener, AdapterView.OnItemClickListener {
TextView mainTextView;
Button mainButton;
EditText mainEditText;
ListView mainListView;
ArrayAdapter mArrayAdapter;
ArrayList mNameList = new ArrayList();
android.widget.ShareActionProvider mShareActionProvider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1. Access the TextView defined in layout XML
// and then set its text
mainTextView = (TextView) findViewById(R.id.main_textview);
mainTextView.setText("Set in Java!");
// 2. Access the Button defined in layout XML
// and listen for it here
mainButton = (Button) findViewById(R.id.main_button);
mainButton.setOnClickListener(this);
// 3. Access the EditText defined in layout XML
mainEditText = (EditText) findViewById(R.id.main_edittext);
// 4. Access the ListView
mainListView = (ListView) findViewById(R.id.main_listview);
// 5. Set this activity to react to list items being pressed
mainListView.setOnItemClickListener(this);
// Create an ArrayAdapter for the ListView
mArrayAdapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1,
mNameList);
// Set the ListView to use the ArrayAdapter
mainListView.setAdapter(mArrayAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu.
// Adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
// Access the Share Item defined in menu XML
MenuItem shareItem = menu.findItem(R.id.menu_item_share);
// Access the object responsible for
// putting together the sharing submenu
if (shareItem != null) {
mShareActionProvider = (android.widget.ShareActionProvider)shareItem.getActionProvider();
}
// Create an Intent to share your content
setShareIntent();
return true;
}
private void setShareIntent() {
if (mShareActionProvider != null) {
// create an Intent with the contents of the TextView
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Android Development");
shareIntent.putExtra(Intent.EXTRA_TEXT, mainTextView.getText());
// Make sure the provider knows
// it should work with that Intent
mShareActionProvider.setShareIntent(shareIntent);
}
}
@Override
public void onClick(View v) {
// Take what was typed into the EditText
// and use in TextView
mainTextView.setText(mainEditText.getText().toString()
+ " Hallo");
// Also add that value to the list shown in the ListView
mNameList.add(mainEditText.getText().toString());
mArrayAdapter.notifyDataSetChanged();
// 6. The text you'd like to share has changed,
// and you need to update
setShareIntent();
}
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
// Log the item's position and contents
// to the console in Debug
Log.d("omg android", position + ": " + mNameList.get(position));
}
}
我真的不知道我有什么错误我是java / android的新手,并且出于某种原因,菜单栏出现在教程中但不适合我。
感谢阅读/帮助!
答案 0 :(得分:1)
<item
android:id="@+id/menu_item_share"
android:showAsAction="always"
android:title="Share"
android:actionProviderClass= "android.widget.ShareActionProvider"
tools:ignore="AppCompatResource" />
ifRoom表示是否有空间可供展示。永远让它永远显示出来。
答案 1 :(得分:1)
转到您的清单文件并添加或更改此应用程序属性,如果不可用则查找类似的内容还有更多使用操作栏
site.com/blog/opepo/klamnsdksa
答案 2 :(得分:0)
select_patient xml包含如下菜单: -
<item
android:id="@+id/action_aboutus"
android:orderInCategory="100"
android:title="@string/action_about_us"
android:icon="@drawable/help_icon"
app:showAsAction="always"
/>
在您的活动中扩展“ActionBarActivity”。
确保您已在活动中添加以下代码行
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SharedMenu.onCreateOptionMenu(menu, this, R.menu.select_patient);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (SharedMenu.onOptionsItemSelected(item, this) == false) {
// handle local menu items here or leave blank
}
return super.onOptionsItemSelected(item);
}