禁用网络连接后,活动按钮不会触发onClick功能

时间:2012-07-04 10:50:30

标签: android android-emulator android-activity

我正在编写一个应用程序,如果网络可用,则将HTTP请求发送到服务器,如果网络不可用,则将其排队。在禁用网络(通过F8或飞行模式)后,我遇到了活动按钮无法正常工作的问题。在禁用网络之前,按钮会正确触发其onClick功能,在禁用网络后,按钮不会触发其onClick功能。

以下是我正在使用的代码。这是一个非常简单的应用程序(Eclipse生成的所有存根代码),我无法解决导致此问题的原因。有没有人遇到过这样的问题呢?谢谢你的任何建议。

在模拟器上的Android 4.0.1 AVD中运行此代码。

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >   

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="24dp"
    android:text="Send Request"
    android:onClick="SendRequestOnClick" />

</RelativeLayout>

MainActivity.java

public class MainActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void SendRequestOnClick(View v)
    {
        Log.i(getPackageName(), "Button 1 Clicked!");

    }     
}

2 个答案:

答案 0 :(得分:0)

在Java类中尝试这个

((Button)findViewById(R.id.button1)).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Log.i(getPackageName(), "Button 1 Clicked!");
        }
    });

并从XML文件android:onClick="SendRequestOnClick"

中删除此行

答案 1 :(得分:0)

在设备上尝试代码后(在@anDroider建议之后。谢谢!)结果证明上面的代码正常工作,正如预期的那样。它似乎是模拟器中的错误或限制。我还注意到网络连接相关的广播接收器没有在仿真器上触发的问题,这可能与也可能没有关联(只是在这里注意以防万一有人偶然遇到这样的问题)。