Android:按钮不起作用

时间:2014-03-14 16:44:55

标签: java android sqlite button tablelayout

所以这个页面上有4个按钮...其中3个工作正常,第4个按钮,链接到ToolsTableLayout.class根本没有响应。没有错误,应用程序没有崩溃或任何东西......你只需点击按钮,没有任何反应。

按钮类的代码:

public class MainMenu extends Activity implements OnClickListener{

private String result;
boolean isScanout;
public static final String SCAN_RESULT = "MyPreferencesFile";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_menu);

    Button ScanOut=(Button)findViewById(R.id.scanout);
    ScanOut.setOnClickListener(this);

    Button ScanIn=(Button)findViewById(R.id.scanin);
    ScanIn.setOnClickListener(this);

    Button EndSession = (Button) findViewById(R.id.endsession);
    EndSession.setOnClickListener(this);
}


        @Override
        public void onClick(View v) {

            if(v.getId()==R.id.scanout){

                isScanout = true;
                IntentIntegrator.initiateScan(this);
            }

            else if(v.getId()==R.id.scanin){

                isScanout = false;
                IntentIntegrator.initiateScan(this);

                }
            else if(v.getId()==R.id.endsession){
                Intent endsessionintent = new Intent(MainMenu.this, MainActivity.class);
                startActivity(endsessionintent);
            }
            else if(v.getId()==R.id.toolDB){
                Intent i = new Intent(MainMenu.this, ToolsTableLayout.class);
                startActivity(i);
            }

        }


        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            switch(requestCode) {
            case IntentIntegrator.REQUEST_CODE: {
                if (resultCode != RESULT_CANCELED) {
                    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);

                            if (scanResult != null) {
                            String qrCode = scanResult.getContents();

                            SharedPreferences codeHack = getSharedPreferences(SCAN_RESULT,0);
                            SharedPreferences.Editor editor = codeHack.edit();
                            editor.putString("entry", qrCode);
                            editor.commit();
                            }
                }
            }
            }
        }


@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;
}
}

R.id.toolDB是没有响应的按钮..

这是ToolsTableLayout.java类(无法打开):

public class ToolsTableLayout extends Activity {

public static final String SCAN_RESULT = "MyPreferencesFile";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tablelayout2);

    SharedPreferences codeHack = getSharedPreferences(SCAN_RESULT,0);
    String QRcode = codeHack.getString("entry", "unregistered");

    StringTokenizer token = new StringTokenizer(QRcode," ");
    String name = token.nextToken();
    String quantity = token.nextToken();

    TextView t1 = (TextView) findViewById(R.id.slot1b);
    TextView t2 = (TextView) findViewById(R.id.slot2b);
    TextView t3 = (TextView) findViewById(R.id.slot3b);

    ToolDB info = new ToolDB(this);
    info.open();
    String c1 = info.getRowID();
    info.createEntry(name, quantity);
    info.close();

    t1.setGravity(Gravity.CENTER_HORIZONTAL);
    t2.setGravity(Gravity.CENTER_HORIZONTAL);
    t3.setGravity(Gravity.CENTER_HORIZONTAL);

    t1.setText(c1);
    t2.setText(name);
    t3.setText(quantity);
}

}

不确定是否需要XML文件?如果是这样,请告诉我,我会更新。

2 个答案:

答案 0 :(得分:3)

您没有为第4个按钮设置onClickListener。请添加

Button btnToolDb = (Button) findViewById(R.id.toolDB);
btnToolDb.setOnClickListener(this);

答案 1 :(得分:0)

根据您提供的代码判断,我相信您忘记创建ClickListener并将其附加到代码中缺少的第四个按钮。