0

編集: onClick は現在正常に動作しています。問題は、ボタンが親クラスから onClick を起動しようとしていたことでした。これで修正されました。もちろん、これは onActivityResult が呼び出されないという新しい問題が発生していることを意味します。

だから私は本当に何が起こっているのか分かりません.ボタンを押しても何も起こらず、logcatには何も起こらず、コードがないかのように何も起こりませんが、これは正しく書かれていると確信しています.

public class myClass extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.store_selector);
    Button getStore = (Button)findViewById(R.id.getStore);

    getStore.setOnClickListener(buttonGetStoreOnClickListener);
}

Button.OnClickListener buttonGetStoreOnClickListener
= new Button.OnClickListener(){

    public void onClick(View arg0) {


    Intent intent = new Intent("com.blah.Blah.client.android.SCAN");
    intent.setPackage("com.blah.Blah");
    intent.putExtra("com.blah.Blah.client.android.SCAN.SCAN_MODE", "QR_CODE_MODE");
    startActivityForResult(intent, 0);
};
};  


@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
    if (requestCode == 0)
    {
        if (resultCode == RESULT_OK)
        {
            String contents = intent.getStringExtra("SCAN_RESULT");
            String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
            Log.i("debug tag", "contents: "+contents+" format: "+format);
            Intent myIntent = new Intent(this, Ads.class);
            myIntent.putExtra("key", contents);
            startActivity(myIntent);
            setContentView(R.layout.activity_ads);

            // Handle successful scan
        }
        else if (resultCode == RESULT_CANCELED)
        {
            // Handle cancel
            Log.i("xZing", "Cancelled");
        }
    }
}


};
4

2 に答える 2

0

これは、インポートする必要があるクラスです。

import android.view.View.OnClickListener;

そして、これはあなたが持つべき方法です:

OnClickListener onButtonListener = new OnClickListener() {

  @Override
  public void onClick(View v) {
    // Your code here   
  }
};

テストして、うまくいったかどうか教えてください。

よろしく

于 2012-10-09T19:46:00.187 に答える
0

Button getStore = (Button)findViewById(R.id.getStore);で正しいボタンを取得しましたか? ?

もしそうなら、それは時々私に時々起こることかもしれません. これが発生すると、logcat には何も表示されません。これを解決するには、[デバイス] ビュー (ウィンドウ、ビューの表示、その他、Android、デバイス) を開いてデバイスを選択します。次に、logcat をもう一度見ると、すべてがそこにあります。

于 2012-10-09T19:51:20.147 に答える