2012-03-09 9 views
0

を発射ませんが、私のコードですが、知らない、誰かが私に言うことができます私は何が足りないのですか?アクティビティ全体にリスナーを追加することも可能ですか?リスナー以下..私は私の主な活動にクリックリスナーと長いクリックリスナーを追加しようとしていますが、その、焼成なく、私のactiviyで

今LongClickリスナーが動作しますが、それはエラーを生成しますので、それは公開しませんクリックのための行を追加する場合..

メソッドsetOnClickListener(View.OnClickListener)でOK

public class HomeFavesActivity extends Activity implements OnClickListener, OnLongClickListener{ private static final String TAG = "HomeFavesCatovoty"; private ArrayList<Integer> mIcons = new ArrayList<Integer>(); IconTray iconTray; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.v(TAG, "CREATED"); DataBaseManager db = new DataBaseManager(this); /*db.getWritableDatabase(); db.AddHomeScreenIcon(1); db.AddHomeScreenIcon(2); db.AddHomeScreenIcon(3); db.AddHomeScreenIcon(4); db.AddHomeScreenIcon(5); db.AddHomeScreenIcon(6); db.AddHomeScreenIcon(7);*/ getScreenIcons(db); } private void getScreenIcons(DataBaseManager db){ mIcons = db.getScreenIcons("TestScreenIcons"); Log.v(TAG, "List Length:"+ mIcons.size()); RelativeLayout rl = (RelativeLayout)findViewById(R.id.main); DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int screenWidth = metrics.heightPixels; int screenHeight = metrics.widthPixels; iconTray = new IconTray(this, mIcons, null, screenWidth, screenHeight); /* RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(screenWidth, screenHeight); params.addRule(rl.CENTER_IN_PARENT); iconTray.setLayoutParams(params);*/ rl.addView(iconTray); rl.setOnLongClickListener(this); rl.setOnClickListener(this); } public void onClick() { // TODO Auto-generated method stub Toast.makeText(this, "woot", Toast.LENGTH_SHORT).show(); } public boolean onLongClick(View v) { // TODO Auto-generated method stub iconTray.longClickMode(); return false; } public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub iconTray.clickMode(); } } 

View型引数(HomeFavesActivity)あなたはonclickのリスナーを持つビューを関連付ける必要があり

+0

を今、彼らは何に添付されていません。 'Activity'にそれらを付けることはできませんが、それらをあなたのレイアウトのルート要素に追加しようとすることができます。 – Luksprog

答えて

1

には適用されません。

ex。

Button button = (Button)findViewById(R.id.my_button); 
button.setOnClickListener(this); 

ボタンをクリックするたびに、実装するリスナーが呼び出されます。 アクティビティ全体を選択できるようにするには、親レイアウト(main.xmlファイルのLinearLayoutやRelativeLayoutなど)を選択し、上の同じコードをそのタイプのビューに従うことができます。 ので、同じように:あなただけのリスナーを実装

LinearLayout parent = (LinearLayout)findViewById(R.id.parent_layout); 
parent.setOnClickListener(this); 
+0

上のコードを編集しました。 – erik

+0

ClickメソッドでDialogInterfaceを実装しています。 View.OnClickListenerを実装する必要があります。 onclickメソッドを削除し、実装ラインでView.OnclickListenerを使用していることを確認してください。次に、もう一度やり直してください:) – dymmeh

+0

@Override 公開ボタンonClick(表示v) {} は、実装したonClickとは対照的に、一度実装されました – dymmeh

関連する問題