【问题标题】:android button only working at second time clickandroid按钮仅在第二次单击时起作用
【发布时间】:2015-02-13 14:45:11
【问题描述】:

我正在开发一款安卓游戏,奇怪的是,在我的游戏主菜单中,按钮只有在第二次被点击时才会起作用。我已经尝试将 onClick 放在按钮 XML 文件中(以及在 Activity 中具有视图属性的公共方法),但我得到了相同的结果。谁能帮帮我?

这是 XML:

 <Button
        android:id="@+id/botaoTeppo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/versaoDoJogo"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginTop="40dp"
        android:background="@drawable/botao_menu_principal"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:text="@string/botaoTreino"
        android:textSize="40sp"
        android:textColor="#FFFFFF" />

这是用于添加 buttonListener 的 onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.getGameHelper().setMaxAutoSignInAttempts(0);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    switchToScreen(R.id.tela_inicial_sumo_sensei);

    String fontpathChines = "fonts/Wonton.ttf";
    Typeface tfChines = Typeface.createFromAsset(getAssets(), fontpathChines);
    Button botaoTeppo = (Button)findViewById(R.id.botaoTeppo);
    Button botaoJogarOnline = (Button) findViewById(R.id.botaoJogarOnline);
    Button botaoModoCompeticao = (Button) findViewById(R.id.botaoModoCompeticao);
    botaoTeppo.setTypeface(tfChines);
    botaoJogarOnline.setTypeface(tfChines);
    botaoModoCompeticao.setTypeface(tfChines);

    botaoTeppo.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Toast.makeText(getApplicationContext(), "botão ir pra teppo acionado", Toast.LENGTH_SHORT).show();
            ArmazenaMostrarRegrasTreinamento mostrarExplicacaoDoTeppoAntes = ArmazenaMostrarRegrasTreinamento.getInstance();
            boolean mostrarExplicacaoDoTeppo = mostrarExplicacaoDoTeppoAntes.getMostrarRegrasDoTreinamento(getApplicationContext());
            Intent iniciaTelaTreinoIndividual;
            if(mostrarExplicacaoDoTeppo == true)
            {
                iniciaTelaTreinoIndividual = new Intent(MainActivity.this, ExplicacaoTeppo.class);
            }
            else
            {
                iniciaTelaTreinoIndividual = new Intent(MainActivity.this, EscolhaNivelActivity.class);
            }

            startActivity(iniciaTelaTreinoIndividual);


        }
    });


    this.popupCarregandoSeUsuarioEstahNaVersaoAtual = 
            ProgressDialog.show(MainActivity.this, getResources().getString(R.string.checando_versao_atual), 
                                getResources().getString(R.string.por_favor_aguarde));
    ChecaVersaoAtualDoSistemaTask taskChecaVersaoAtualDoSistema = new ChecaVersaoAtualDoSistemaTask(this, this.popupCarregandoSeUsuarioEstahNaVersaoAtual);
    taskChecaVersaoAtualDoSistema.execute("");
}

【问题讨论】:

    标签: android button


    【解决方案1】:

    将此行添加到xml中的按钮并尝试:

    android:focusable="false"

    【讨论】:

      【解决方案2】:

      我在开发自定义相机的应用程序中遇到了同样的问题。

      如果您在此活动中使用全屏布局,请尝试将此代码放在您需要的活动下的 AndroidManifest.xml 文件中:

      <activity
                  android:name=".YOUR_ACTIVITY"
                  android:configChanges="orientation"
                  android:label="@string/title_activity_YOUR_ACTIVITY"
                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
      

      具有魔力的行是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

      【讨论】:

      • 试过用这个,但没用。我想我会尽量不要全屏使用它...
      • 能否请您粘贴整个 XML 布局文件?
      猜你喜欢
      • 1970-01-01
      • 2018-05-05
      • 2021-02-14
      • 2012-07-09
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多