Java 菜单按钮工作,软按钮不工作。代码基本相同
标题说明了一切,我是SQL新手,尝试更改用户的选择,但在屏幕上放置按钮,而不使用菜单按钮。似乎按钮没有实例化,但代码看起来对我来说是正确的…我遗漏了什么Java 菜单按钮工作,软按钮不工作。代码基本相同,java,android,button,menu,Java,Android,Button,Menu,标题说明了一切,我是SQL新手,尝试更改用户的选择,但在屏幕上放置按钮,而不使用菜单按钮。似乎按钮没有实例化,但代码看起来对我来说是正确的…我遗漏了什么 package com.example.worldcountriesbooks; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Inten
package com.example.worldcountriesbooks;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class ViewCountry extends Activity implements OnClickListener{
private long rowID;
private TextView nameTv;
private TextView capTv;
private TextView codeTv;
private TextView newEt;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.view_country);
Button a = (Button)findViewById(R.id.editbutton);
Button b = (Button)findViewById(R.id.deletebutton);
a.setOnClickListener(this);
b.setOnClickListener(this); //Set them up right here...
setUpViews();
Bundle extras = getIntent().getExtras();
rowID = extras.getLong(CountryList.ROW_ID);
}
private void setUpViews() {
nameTv = (TextView) findViewById(R.id.nameText);
capTv = (TextView) findViewById(R.id.capText);
codeTv = (TextView) findViewById(R.id.codeText);
newEt = (TextView)findViewById(R.id.newText);
}
@Override
protected void onResume()
{
super.onResume();
new LoadContacts().execute(rowID);
}
private class LoadContacts extends AsyncTask<Long, Object, Cursor>
{
DatabaseConnector dbConnector = new DatabaseConnector(ViewCountry.this);
@Override
protected Cursor doInBackground(Long... params)
{
dbConnector.open();
return dbConnector.getOneContact(params[0]);
}
@Override
protected void onPostExecute(Cursor result)
{
super.onPostExecute(result);
result.moveToFirst();
// get the column index for each data item
int nameIndex = result.getColumnIndex("name");
int capIndex = result.getColumnIndex("cap");
int codeIndex = result.getColumnIndex("code");
int newIndex = result.getColumnIndex("newb");
nameTv.setText(result.getString(nameIndex));
capTv.setText(result.getString(capIndex));
codeTv.setText(result.getString(codeIndex));
newEt.setText(result.getString(newIndex));
result.close();
dbConnector.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.view_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());
addEditContact.putExtra("newb", newEt.getText());
startActivity(addEditContact);
return true;
case R.id.deleteItem:
deleteContact();
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();
}
public void onClick(View arg0) {
switch (arg0.getId())
{
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());
addEditContact.putExtra("newb", newEt.getText());
startActivity(addEditContact);
break;
case R.id.deleteItem:
deleteContact();
break;//finish them up here and they do nothing...
}
}
}
package com.example.worldcountriesbooks;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.database.Cursor;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuInflater;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TextView;
公共类ViewCountry扩展活动实现OnClickListener{
私人长罗威德;
私有文本视图名称电视;
私有文本视图capTv;
私有文本视图代码电视;
私有文本视图newEt;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.view_country);
按钮a=(按钮)findViewById(R.id.editbutton);
按钮b=(按钮)findViewById(R.id.deletebutton);
a、 setOnClickListener(此);
b、 setOnClickListener(此);//在此处设置它们。。。
setupview();
Bundle extras=getIntent().getExtras();
rowID=extras.getLong(CountryList.ROW\u ID);
}
私有void setUpViews(){
nameTv=(TextView)findviewbyd(R.id.nameText);
capTv=(文本视图)findViewById(R.id.capText);
codeTv=(TextView)findviewbyd(R.id.codeText);
newEt=(TextView)findViewById(R.id.newText);
}
@凌驾
受保护的void onResume()
{
super.onResume();
新建LoadContacts().execute(rowID);
}
私有类LoadContacts扩展异步任务
{
DatabaseConnector dbConnector=新的DatabaseConnector(ViewCountry.this);
@凌驾
受保护的光标背景(长…参数)
{
dbConnector.open();
返回dbConnector.getOneContact(参数[0]);
}
@凌驾
受保护的void onPostExecute(游标结果)
{
super.onPostExecute(结果);
result.moveToFirst();
//获取每个数据项的列索引
int nameIndex=result.getColumnIndex(“名称”);
int capIndex=result.getColumnIndex(“cap”);
int codeIndex=result.getColumnIndex(“代码”);
int newIndex=result.getColumnIndex(“newb”);
nameTv.setText(result.getString(nameIndex));
setText(result.getString(capIndex));
setText(result.getString(codeIndex));
setText(result.getString(newIndex));
result.close();
dbConnector.close();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单)
{
super.onCreateOptions菜单(菜单);
MenuInflater充气机=getMenuInflater();
充气器。充气(右菜单。查看国家菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项)
{
开关(item.getItemId())
{
案例R.id.editItem:
意向书=
新的意图(此,添加了Country.class);
addEditContact.putExtra(CountryList.ROW_ID,rowID);
addEditContact.putExtra(“name”,nameTv.getText());
addEditContact.putExtra(“cap”,capTv.getText());
addEditContact.putExtra(“code”,codeTv.getText());
addEditContact.putExtra(“newb”,newEt.getText());
startActivity(addEditContact);
返回true;
案例R.id.deleteItem:
deleteContact();
返回true;
违约:
返回super.onOptionsItemSelected(项目);
}
}
私有void deleteContact()
{
AlertDialog.Builder alert=新建AlertDialog.Builder(ViewCountry.this);
alert.setTitle(R.string.confirmTitle);
alert.setMessage(R.string.confirmMessage);
alert.setPositiveButton(R.string.delete_btn,
新建DialogInterface.OnClickListener()
{
公共void onClick(对话框接口对话框,int按钮)
{
最终数据库连接器dbConnector=
新的数据库连接器(ViewCountry.this);
异步任务删除任务=
新建异步任务()
{
@凌驾
受保护对象doInBackground(长…参数)
{
dbConnector.deleteContact(参数[0]);
返回null;
}
@凌驾
受保护的void onPostExecute(对象结果)
{
完成();
}
};
deleteTask.execute(新的长[]{rowID});
}
}
);
alert.setNegativeButton(R.string.cancel_btn,null).show();
}
公共void onClick(视图arg0){
开关(arg0.getId())
{
案例R.id.editItem:
意向书=
新的意图(此,添加了Country.class);
addEditContact.putExtra(CountryList.ROW_ID,rowID);
addEditContact.putExtra(“name”,nameTv.getText());
addEditContact.putExtra(“cap”,capTv.getText());
addEditContact.putExtra(“code”,codeTv.getText());
addEditContact.putExtra(“newb”,newEt.getText());
startActivity(addEditContact);
打破
案例R.id.deleteItem:
deleteContact();
打破;//在这里完成他们,他们什么也不做。。。
}
}
}
现在菜单按钮工作得很好,所以不确定发生了什么…感谢您查看菜单按钮工作得很好,因为
public void onClick(View arg0) {
switch (arg0.getId())
{
case R.id.editbutton: //updated
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());
addEditContact.putExtra("newb", newEt.getText());
startActivity(addEditContact);
break;
case R.id.deletebutton: //updated
deleteContact();
break;
}
}
}