java如何使用此菜单项加载不同的活动
当我单击菜单项(特别是-help)并选择正确的activity User1Tap时,我正试图使用此菜单项加载不同的活动。类不加载(它将我带到AddEditCountry.class)
import 安卓.os.AsyncTask;
import 安卓.os.Bundle;
import 安卓.app.AlertDialog;
import 安卓.app.ListActivity;
import 安卓.content.DialogInterface;
import 安卓.content.Intent;
import 安卓.database.Cursor;
import 安卓.view.Menu;
import 安卓.view.MenuInflater;
import 安卓.view.MenuItem;
import 安卓.view.View;
import 安卓.widget.AdapterView;
import 安卓.widget.CursorAdapter;
import 安卓.widget.ListView;
import 安卓.widget.SimpleCursorAdapter;
import 安卓.widget.AdapterView.OnItemClickListener;
public class CountryList extends ListActivity {
public static final String ROW_ID = "row_id";
private ListView conListView;
private CursorAdapter conAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
conListView=getListView();
conListView.setOnItemClickListener(viewConListener);
// map each name to a TextView
String[] from = new String[] { "name" };
int[] to = new int[] { R.id.countryTextView };
conAdapter = new SimpleCursorAdapter(CountryList.this, R.layout.country_list, null, from, to);
setListAdapter(conAdapter); // set adapter
}
@Override
protected void onResume()
{
super.onResume();
new GetContacts().execute((Object[]) null);
}
@Override
protected void onStop()
{
Cursor cursor = conAdapter.getCursor();
if (cursor != null)
cursor.deactivate();
conAdapter.changeCursor(null);
super.onStop();
}
private class GetContacts extends AsyncTask<Object, Object, Cursor>
{
DatabaseConnector dbConnector = new DatabaseConnector(CountryList.this);
@Override
protected Cursor doInBackground(Object... params)
{
dbConnector.open();
return dbConnector.getAllContacts();
}
@Override
protected void onPostExecute(Cursor result)
{
conAdapter.changeCursor(result); // set the adapter's Cursor
dbConnector.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.country_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.editItem:
Intent addEditContact =
new Intent(this, AddEditCountry.class);
addEditContact.putExtra(CountryList.ROW_ID, rowID);
addEditContact.putExtra("name", nameTv.getText());
addEditContact.putExtra("cap", capTv.getText());
addEditContact.putExtra("code", codeTv.getText());
startActivity(addEditContact);
return true;
case R.id.deleteItem:
deleteContact();
return true;
case R.id.help:
Intent i = new Intent(ViewCountry.this, User1Tap.class);
CountryList.this.startActivity(i);
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void deleteContact()
{
AlertDialog.Builder alert = new AlertDialog.Builder(ViewCountry.this);
alert.setTitle(R.string.confirmTitle);
alert.setMessage(R.string.confirmMessage);
alert.setPositiveButton(R.string.delete_btn,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int button)
{
final DatabaseConnector dbConnector =
new DatabaseConnector(ViewCountry.this);
AsyncTask<Long, Object, Object> deleteTask =
new AsyncTask<Long, Object, Object>()
{
@Override
protected Object doInBackground(Long... params)
{
dbConnector.deleteContact(params[0]);
return null;
}
@Override
protected void onPostExecute(Object result)
{
finish();
}
};
deleteTask.execute(new Long[] { rowID });
}
}
);
alert.setNegativeButton(R.string.cancel_btn, null).show();
}
}
国家/地区菜单。xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:安卓="schemas.安卓.com/apk/res/安卓">;
<item 安卓:id="@+id/addCountryItem"
安卓:title="@string/add_menu"
安卓:titleCondensed="@string/add_menu"
安卓:showAsAction="always"
安卓:alphabeticShortcut="e"/>
<item 安卓:id="@+id/help"
安卓:title="@string/help"
安卓:titleCondensed="@string/help"
安卓:alphabeticShortcut="e"/>
</menu>
# 1 楼答案
试试这个:
# 2 楼答案
在oncreate()方法中调用方法setcontentview()。。。 我猜它不见了。。。 试试看是否管用