я.小鲁
2020-11-01 13:00
采纳率: 100%
浏览 39

Android初学者 求助贴

问题描述:
为按钮添加菜单,能成功运行但按钮无法弹出菜单。猜测为源代码有错误。
源代码:
1、menu文件:menu_options.xml
<?xml version="1.0" encoding="utf-8"?>


android:title="添加"/>
android:title="删除"/>
android:title="查询"/>
android:title="退出"/>

2、layout文件:login.xml
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:padding="10px"
android:id="@+id/login">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_use"
android:textSize="18dp"
android:hint="用户名"/>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edit_pass"
android:textSize="18dp"
android:hint="密码"/>
android:layout_width="match_parent"
android:layout_height="63dp"
android:id="@+id/btnOne"
android:background="@drawable/btn_bg1"
android:text="登录"
android:textColor="#fff"
android:textStyle="bold"/>
android:layout_width="match_parent"
android:layout_height="64dp"
android:id="@+id/btnTwo"
android:text="注册"
android:textColor="#8A6F47"
android:textStyle="bold"
android:textSize="20sp"/>


3、java文件:
package com.example.helloworrd;

import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuItem;

import android.view.View;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) { //onCreate方法重写
super.onCreate(savedInstanceState);
setContentView(R.layout.login); //继承xml布局文件
TextView but = (TextView) findViewById(R.id.btnTwo);
registerForContextMenu(but);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View b, ContextMenu.ContextMenuInfo menuInfo){
super.onCreateContextMenu(menu,b,menuInfo);
getMenuInflater().inflate(R.menu.menu_options,menu);
}
@Override
public boolean onContextItemSelected(MenuItem item){
switch (item.getItemId()){
case R.id.menu_add:{
Log.i("Menu","Menu add");
return true;
}
case R.id.menu_delete:{
Log.i("Menu","menu delete");
return true;
}
case R.id.menu_query:{
Log.i("menu","menu query");
return true;
}
case R.id.menu_exit:{
Log.i("menu","menu exit");
return true;
}
default:
return super.onContextItemSelected(item);
}
}
}
其中,将 TextView but = (TextView) findViewById(R.id.btnTwo);改为:
Button but = (Button) findViewById(R.id.btnTwo);
但并没有效果。
求助大佬帮忙解答,十分感谢。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题