我在main_view.xml
中有以下布局,其中包含ImageButton
,当我点击/触摸按钮时按钮ButtonListener
函数永远不会被调用。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayoutFragment"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
<fragment
android:id="@+id/mapArea"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</fragment>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/locate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:background="#80000000"
android:gravity="center"
android:padding="10dp"
android:text="@string/findingLocation"
android:textColor="#FFFFFF"
android:textSize="12sp" />
<ImageButton
android:id="@+id/Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="@dimen/rightLeftMargin"
android:layout_marginLeft="@dimen/rightLeftMargin"
android:background="@null"
android:clickable="true"
android:contentDescription="@string/button1text"
android:src="@drawable/ic_feed_active" />
<ImageButton
android:id="@+id/Button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/rightLeftMargin"
android:background="@null"
android:contentDescription="@string/button2"
android:src="@drawable/ic_button2" />
<ImageButton
android:id="@+id/Button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="@dimen/rightLeftMargin"
android:layout_marginRight="@dimen/rightLeftMargin"
android:background="@null"
android:contentDescription="@string/button3View"
android:src="@drawable/ic_settings_active" />
</RelativeLayout>
并在MainActivity.Java中执行以下代码 公共类MainActivity扩展了Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
User usrObj = new User();
if (usrObj.authenticateUser())
setContentView(R.layout.main_view);
else
setContentView(R.layout.login);
}
public void ButtonListener() {
ImageButton oggleButton = (ImageButton) findViewById(R.id.Button1);
ToggleButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(MainActivity.this, "ImageButton is clicked!",
Toast.LENGTH_SHORT).show();
}
});
}
}
请帮忙。
答案 0 :(得分:1)
当ButtonListener
为真时,您忘记调用usrObj.authenticateUser()
方法。这样做:
if (usrObj.authenticateUser())
{
setContentView(R.layout.main_view);
ButtonListener (); << call here
}
else
setContentView(R.layout.login);
并将setOnClickListener
附加到oggleButton
而不是ToggleButton
答案 1 :(得分:1)
除了来自ρяσѕρєяK的上述建议之外,还有一件事需要注意。
而不是以下代码。
oggleButton.setOnClickListener(new OnClickListener() {
使用这个
oggleButton.setOnClickListener(new View.OnClickListener() { // use View.oncli......