如何在 ImageButton 中设置 onClick 事件?
How set the onClick event in a ImageButton?
我在 android 中创建了一个图像按钮,但是当我点击该按钮时没有任何反应。我已经设置了所有属性,但仍然没有任何反应。那么你能帮我看看我错在哪里吗?
xml 文件
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget39"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_x="0dp"
android:layout_y="3dp" />
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
/>
</AbsoluteLayout>
search.java
public class SearchData extends Activity {
ImageButton search;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_data);
search =(ImageButton)findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
你需要这样的东西:
在您的 XML 中查看 android:onClick
和 android:id
的值:
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="myFunctionName"
android:background="@drawable/search" />
在您的 file.java 中查看函数名称 myFunctionName
以及事件触发时的操作 case R.id.search:
public class SearchData extends Activity {
ImageButton search;
public void myFunctionName(View view) {
switch (view.getId()) {
case R.id.search:
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
protected void onCreate(Bundle savedInstanceState) {
// code
}
}
从 xml
中删除 android:onClick="onClick"
尝试为您的 activity
实现 Onclick 侦听器
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
/>
这个按钮没有问题
如下所示更改您的activity
***search.java***
public class SearchData extends Activity implements OnClickListener{
ImageButton search;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_data);
search =(ImageButton)findViewById(R.id.search);
search.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.search:
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
}
希望它能奏效。如果您对执行此操作有任何疑问,请告诉我
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
根据您的 xml,您应该从图像按钮中删除 android:onClick="onClick"
行 Xml.Then 它会起作用,因为第一优先级将始终用于您在 [=15] 中提到的 onClick 方法=].
在XML文件中(例如activity_main.xml)
<ImageButton
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/home"
...
/>
在Java文件中(例如activity_main.java)
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initiate and perform click event on button's
ImageButton search = (ImageButton)findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"search button is Clicked", Toast.LENGTH_LONG).show();
}
});
}
我在 android 中创建了一个图像按钮,但是当我点击该按钮时没有任何反应。我已经设置了所有属性,但仍然没有任何反应。那么你能帮我看看我错在哪里吗?
xml 文件
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget39"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:layout_x="0dp"
android:layout_y="3dp" />
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
/>
</AbsoluteLayout>
search.java
public class SearchData extends Activity {
ImageButton search;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_data);
search =(ImageButton)findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
你需要这样的东西:
在您的 XML 中查看 android:onClick
和 android:id
的值:
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="myFunctionName"
android:background="@drawable/search" />
在您的 file.java 中查看函数名称 myFunctionName
以及事件触发时的操作 case R.id.search:
public class SearchData extends Activity {
ImageButton search;
public void myFunctionName(View view) {
switch (view.getId()) {
case R.id.search:
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
protected void onCreate(Bundle savedInstanceState) {
// code
}
}
从 xml
中删除android:onClick="onClick"
尝试为您的 activity
实现 Onclick 侦听器 <ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
/>
这个按钮没有问题
如下所示更改您的activity
***search.java***
public class SearchData extends Activity implements OnClickListener{
ImageButton search;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_data);
search =(ImageButton)findViewById(R.id.search);
search.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.search:
try {
ConnectService();
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
}
希望它能奏效。如果您对执行此操作有任何疑问,请告诉我
<ImageButton
android:id="@+id/search"
android:layout_width="40dp"
android:layout_height="41dp"
android:layout_x="312dp"
android:layout_y="10dp"
android:clickable="true"
android:onClick="onClick"
android:background="@drawable/search" />
根据您的 xml,您应该从图像按钮中删除 android:onClick="onClick"
行 Xml.Then 它会起作用,因为第一优先级将始终用于您在 [=15] 中提到的 onClick 方法=].
在XML文件中(例如activity_main.xml)
<ImageButton
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/home"
...
/>
在Java文件中(例如activity_main.java)
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initiate and perform click event on button's
ImageButton search = (ImageButton)findViewById(R.id.search);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"search button is Clicked", Toast.LENGTH_LONG).show();
}
});
}