回答
試試這個辦法,希望這將幫助你解決你的問題。
main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Button2"/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Button3"/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Button4"/>
</LinearLayout>
MyActivity.java
public class MyActivity extends Activity implements View.OnClickListener {
private Button button1;
private Button button2;
private Button button3;
private Button button4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.button1:
Toast.makeText(this,"Button 1 click",Toast.LENGTH_SHORT).show();
break;
case R.id.button2:
Toast.makeText(this,"Button 2 click",Toast.LENGTH_SHORT).show();
break;
case R.id.button3:
Toast.makeText(this,"Button 3 click",Toast.LENGTH_SHORT).show();
break;
case R.id.button4:
Toast.makeText(this,"Button 4 click",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
這實際上不是一個不好的解決方案。那麼,你的假設是事件是從下跌冒泡的? – AngryOliver
你可以試試這個:
parent.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
ViewGroup parent = (ViewGroup)v;
for(int index = 0; index < parent.getChildCount(); index++){
View child = parent.getChildAt(index);
}
}
});
什麼是'childImageViewA'? – AngryOliver
@AngryOliver編輯! – SuppressWarnings
您需要標記設置你的意見,並將其設爲可點擊。
以後你可以通過view.gettag()
獲得ID這種方法
public void onClick(View v){
int id = v.getTag();
switch(id){
case 0:
break;
default:
break;
}
}
但「onClick」事件與父項相關。不是孩子。 – AngryOliver
@AngryOliver你會得到被點擊的孩子。這就是爲什麼我提到設置標籤到您的視圖。 – CodeWarrior
內爲每一個孩子
android:duplicateParentState="true"
- 1. 找到哪個視圖被點擊
- 2. Recyclerview addOnItemTouchListener獲取哪個子視圖在行內被點擊
- 3. 檢測哪個子元素被點擊
- 4. 找到哪個圖像視圖被點擊
- 5. 瞭解哪個圖片框被點擊
- 6. 哪個TextView被點擊?
- 7. 哪個JLabel被點擊過?
- 8. 如何知道listView行的哪個視圖被點擊過?
- 9. Android Listview simpleadapter onClick,如何找到哪個視圖被點擊?
- 10. Jquery Mobile檢測哪個行在列表視圖中被點擊
- 11. 檢測哪個視圖被點擊後,動畫其位置
- 12. 識別哪個子視圖被挖掘
- 13. $ _POST表單通過點擊圖片。並知道哪個圖片被點擊
- 14. 確定樹狀圖中的哪個節點已被點擊
- 15. 跟蹤圖像列表中的哪個圖像被點擊?
- 16. 檢測哪個圖像與圖像被點擊
- 17. 找到哪個按鈕被點擊
- 18. CheckedTextView的哪個部分被點擊了?
- 19. 找出哪個TableView已被點擊
- 20. 如何定義哪個ListView被點擊?
- 21. 獲取哪個項目被點擊
- 22. jQuery檢測哪個id被點擊
- 23. 得到哪個微調被點擊
- 24. vba按鈕 - 找到哪個被點擊
- 25. JQuery - 檢測哪個div框被點擊
- 26. pyqt5顯示哪個按鈕被點擊
- 27. 找到哪個li被點擊
- 28. 如何找出哪個DataGridView被點擊?
- 29. 如何識別哪個`view`被點擊?
- 30. 哪個控件被點擊了?
嘗試比較視圖id用的onClick視圖。 –