2011-12-08 23 views
1

問題: ImageButtonのクリックイベントをキャプチャしようとしています。私はクリッカブルevent.Iをキャプチャすることはできませんよ はfollコードにImageButtonのClickイベントをキャプチャできません - Android APIレベル8

質問を使用していますがイベントをクリックキャプチャするのImageButtonまたは任意の他の方法をキャプチャするsetOnClickListener適切な方法です。 私がもうこれ以上提供できるかどうか教えてください。ここで

FoodType.java

public class FoodType extends Activity { 

    ImageButton btnFoodType1,btnFoodType2; 

    public void onCreate(Bundle bundleInstance) 
    { 
     super.onCreate(bundleInstance); 
     setContentView(R.layout.food_type); 


     btnFoodType1 = (ImageButton)findViewById(R.id.btnFoodType1); 
     btnFoodType2 = (ImageButton)findViewById(R.id.btnFoodType2); 

     btnFoodType1.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       setContentView(R.layout.veg_category_type); 
      } 
     }); 

     btnFoodType2.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       setContentView(R.layout.non_veg_category_type); 
      } 
     }); 
    } 
} 

のImageButtonのレイアウトused.TheプロパティのXMLは、アンドロイドを使用行く:クリッカブル= "true" を

* food_type.xml *

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/pizza" 
    android:gravity="center" 
    android:orientation="horizontal" > 


    <ImageButton 
     android:id="@+id/btnFoodType1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="255dp" 
     android:background="@drawable/veg" 
     android:clickable="true" 
     android:src="@drawable/ic_launcher" /> 


    <ImageButton 
     android:id="@+id/btnFoodType2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="182dp" 
     android:background="@drawable/nonveg" 
     android:clickable="true" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 
+0

あなたのレイアウトには違いがあるかどうかを確認するためにアンドロイド:focusable = "true"を追加してください。 – SERPRO

+0

どのようなエラーが表示されますか? – user493244

+0

@ user493244:エラーは発生しません。問題は、コントロールがonClickメソッドに含まれていないことです。 –

答えて

0

android:onClick="functionName" 

XMLでこの を試してみてください。 私がした間違いは:

間違い1:入力されていませんAndroidManifest.xmlのアクティビティの詳細。

間違い2:直接活動を呼び出すのではなく、私はlayout.xmlを呼び出していました。私は直接間違い2

setContentView(R.layout.ui2.xml); 

ミス1 AndroidManifest.xml

<activity android:name="Sample"></activity> 

に詳細を入力することによって解決される呼んだので実際

制御は、活動2に、アクティビティ1である来ませんでしたActivity1.javaの変更によって解決されました。xmlを呼び出すために、私はIntentを使用してActivity2.classを呼び出しました。

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
     entry_button = (Button) findViewById(R.id.btnEntry); 
     entry_button.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       // TODO Auto-generated method stub 
       // Earlier mistake commented 
       // setContentView(R.layout.food_type); 
       Intent splashIntent = new Intent(view.getContext(), FoodType.class); 
       startActivityForResult(splashIntent, 0); 
      } 
    }); 
} 
1

start newそれぞれのレイアウトに対応するは、2つのうちの1つをクリックすると表示されます。ImageButton; setContentView()に電話しないと、動作しません。

+0

これをサンプルプロジェクトでテストしたところ、 'setContentView()'を複数回呼び出す*(ボタンのクリックで)*が動作します。編集:なぜこれは+1ですか?正解ではありません。 –

0

私はサンプルプロジェクトでテストしました。それは私のために正常に動作します。

+0

プロパティを変更しましたか? –

+0

いいえ、私は画像を持っていないので、私はちょうど背景を削除したプロパティを変更しませんでした。 – user493244

+0

あなたはどんな問題に直面していますか? – user493244

0

たぶん、問題が解決されているコード

public void functionName(final View view) 
{ 
Something(); 
} 
関連する問題