0

我正在编写一个应用程序,如果网络可用,它将向服务器发送 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!");

    }     
}
4

2 回答 2

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"

于 2012-07-04T10:57:21.340 回答
0

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

于 2012-07-04T16:08:09.200 回答