我正在编写一个应用程序,如果网络可用,则将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!");
}
}
答案 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建议之后。谢谢!)结果证明上面的代码正常工作,正如预期的那样。它似乎是模拟器中的错误或限制。我还注意到网络连接相关的广播接收器没有在仿真器上触发的问题,这可能与也可能没有关联(只是在这里注意以防万一有人偶然遇到这样的问题)。