【问题标题】:Android: Broken menu button when text usedAndroid:使用文本时菜单按钮损坏
【发布时间】:2011-02-24 06:38:21
【问题描述】:

我已经定义了一个标准的 onCreateOptionsMenu。当我的 EditText 框为空时,菜单按钮可以正常工作。但是当 EditText 框中有数据时,菜单按钮不起作用。有什么线索吗?请帮忙,我不知道如何解决这个问题。谢谢!

public class TipCalc extends Activity {

private EditText total;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    total = (EditText)findViewById(R.id.EditText01);
    total.setOnKeyListener(mKeyListener);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

private OnKeyListener mKeyListener = new OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_UP) {
            if((v.getId() == R.id.EditText01 
                    && (total.getText().toString().length() > 0) {
                calculate();
                return true;
            }
        }
        return false;
    }
}

【问题讨论】:

  • 您为 mKeyListener 发布的代码无法编译。 onKey 需要返回一个布尔值,而您的代码没有返回任何内容。您需要发布实际代码以供任何人查看它有什么问题。
  • 谢谢,我改了。抱歉,我不想发布我的完整代码。但这基本上就是这样。所有的逻辑都一样。
  • 非常感谢特德。因为你的评论,我才知道。基本上我正在进入 onKey 循环并每次都返回 true,因此它正在捕获循环中的菜单按钮。我如何关闭这个话题?

标签: java android button menu android-activity


【解决方案1】:

我不知道这是否正确,但创建 setOnClickListener 而不是 OnKeyListener

类似的东西

    TextView total = (TextView) findViewById(R.id.EditText01);
    total.setOnClickListener(new OnClickListener()
    {            
        @Override
        public void onClick(View v)
        {
            //do some stuff
        }
    });

【讨论】:

    猜你喜欢
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2014-05-04
    相关资源
    最近更新 更多