我有一个连接和断开连接的应用程序。这两个状态由一个按钮处理。但是,用户可以清楚地看到,当您单击“连接”时,应用程序必须更改要断开连接的按钮的名称,这与此不同。我试着这样做:
@Override
public boolean onMenuItemSelected(int panel, MenuItem item) {
showToast(item.getTitle().toString(), Toast.LENGTH_LONG);
if(item.getTitle().equals("Conectar") &&
item.getItemId() == (R.id.connectionButton))
{
ConnectProcess con = new ConnectProcess(Configuration.this);
con.execute();
item.setTitle(getResources().getString(R.string.disconnect));
}
else if(item.getTitle().equals("Desconectar") &&
item.getItemId() == (R.id.connectionButton))
{
LoadCompany loadCompany = new LoadCompany(Configuration.this);
loadCompany.execute();
item.setTitle(getResources().getString(R.string.connect));
}
return true;
}
当我运行该命令时,抛出以下异常。有谁知道如何解决这个问题?
06-09 15:08:26.140: E/AndroidRuntime(1219): FATAL EXCEPTION: main
06-09 15:08:26.140: E/AndroidRuntime(1219): Process: com.sisteplantbrasil.prisma3mobilev2, PID: 1219
06-09 15:08:26.140: E/AndroidRuntime(1219): java.lang.ClassCastException: com.android.internal.view.menu.ActionMenuItemView cannot be cast to android.view.MenuItem
06-09 15:08:26.140: E/AndroidRuntime(1219): at com.sisteplantbrasil.prisma3mobilev2.Configuration.setConnectionButtonText(Configuration.java:105)
答案 0 :(得分:0)
你能告诉我更多你的logCat。通常,创建错误的行是写在它上面。
但如果我理解你的问题,你可以使用" seText()"。
这是一个代码示例:
//
button1=(Button) findViewById(R.id.yourButton);
button1.setOnClickListener(yourListener);
private OnClickListener yourListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
button1.setText("Your New Txt");
};
答案 1 :(得分:0)
更改支持操作栏中的操作栏菜单。然后调用超级方法supportInvalidateOptionsMenu();
onCreateOptionsMenu
,您可以在其中更改菜单。还有invalidateOptionsMenu()
方法在操作栏的非支持版本上执行相同的操作。
public class Whatever extends ActionBarActivity {
boolean action_connect = false;
public boolean onOptionsItemSelected(MenuItem item) {
int x = item.getItemId();
switch (x) {
case R.id.action_connect:
action_connect = true;
super.supportInvalidateOptionsMenu();
return true;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (action_connect) {
}