【问题标题】:Button no longer does what it is supposed to do按钮不再做它应该做的事情
【发布时间】:2014-05-15 05:00:48
【问题描述】:

我有一个按钮,用于从一个活动切换到另一个可以正常工作的活动,但是自从我为另一个按钮添加了代码以调用 zxing 的扫描功能后,该按钮就不再做任何事情了。 这是我的 MainActivity.java 给那些愿意帮助的人

 package com.example.mdpmk1;

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.content.Context;
    import android.net.wifi.ScanResult;
    import android.widget.Button;
    import com.google.zxing.integration.android.IntentIntegrator;
    import com.google.zxing.integration.android.IntentResult;

    public class MainActivity extends Activity {

    Button button;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addListenerOnButton();
    }

    public void addListenerOnButton() {

        final Context context = this;


        button = (Button) findViewById(R.id.scan);


        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                if(v.getId()==R.id.scan){
                //scan

                    IntentIntegrator integrator = new IntentIntegrator(MainActivity.this);
                    integrator.initiateScan();
                }


            }

        });

    }


    public void onActivityResult(int requestCode, int resultCode, Intent intent) 
    {
        //super.onActivityResult(requestCode, resultCode, intent);
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {

            } else if (resultCode == RESULT_CANCELED) {

            }
        }
    }





    Button button2;

    public void onCreate1(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addListenerOnButton();
    }

    public void addListenerOnButton1() {

        final Context context = this;


        button2 = (Button) findViewById(R.id.getResults);


        button2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent intent = new Intent(context, ScanResult.class);
                startActivity(intent);



            }

        });

    }


    }

没有响应的按钮是 button2,所以如果你能帮助我做任何可爱的事情,在此先感谢。感谢所有帮助。

【问题讨论】:

  • addListenerOnButton1() 在哪里调用?
  • 你在两个activity中设置了相同的布局setContentView(R.layout.activity_main)
  • addListenerOnButton();此名称更改为addListenerOnButton1()
  • 你打电话给addListenerOnButton(),你应该打电话给addListenerOnButton1()
  • @Raghunandan 我不应该这样做吗?它在第一个按钮用于将您带到另一个屏幕之前也起作用

标签: android button onclicklistener


【解决方案1】:

对于两个按钮,您正在添加相同的侦听器

addListenerOnButton();

addListenerOnButton1();

请相应地更改button2

【讨论】:

    【解决方案2】:
        public class MainActivity extends Activity {
    Button bt, bt2;
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main);
    
                    bt = (Button) findViewById(R.id.scan);
                    bt2 = (Button) findViewById(R.id.getResults);
    
    
    
                    bt.setOnClickListener(new OnClickListener() {
    
                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                             // do initiatescan
                        }
                    });
    
                    bt2.setOnClickListener(new OnClickListener() {
    
                        @Override
                        public void onClick(View arg0) {
    
                            Intent intent = new Intent(MainActivity.this, ScanResult.class);
                            startActivity(intent);
    
    
    
                        }
    
                    });
    
    
    
                }
    
        public void onActivityResult(int requestCode, int resultCode, Intent intent) 
                    {
                        //super.onActivityResult(requestCode, resultCode, intent);
                        if (requestCode == 0) {
                            if (resultCode == RESULT_OK) {
    
                            } else if (resultCode == RESULT_CANCELED) {
    
                            }
                        }
                    }
    
    
                @Override
                public boolean onCreateOptionsMenu(Menu menu) {
                    // Inflate the menu; this adds items to the action bar if it is present.
                    getMenuInflater().inflate(R.menu.main, menu);
                    return true;
                }
    
            }
    

    编辑:用这个改变你的 onCreate 方法并检查。希望它有效。

    【讨论】:

    • 由于没有提供任何信息,我假设您希望我用这个替换我的整个代码?
    • 我的应用程序现在在单击按钮 1 时崩溃,按钮 2 仍然无法将我带到另一个页面
    • 检查按钮 ID 以及它在哪一行显示错误?
    • 我做了所有的按钮 ID,我在哪里可以找到导致崩溃的行(我在代码中没有看到错误)
    • 请再创建一个问题线程并在那里发布您的所有代码。并在这里给我链接。您的应用强制关闭了吗?调试一下,你就会知道错误在哪里,或者检查你的 logcat。
    猜你喜欢
    • 1970-01-01
    • 2011-09-28
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    相关资源
    最近更新 更多