0

ネットワークが利用可能な場合はサーバーにHTTPリクエストを送信し、ネットワークが利用できない場合はHTTPリクエストをキューに入れるアプリケーションを作成しています。ネットワークを(F8または機内モードで)無効にした後、アクティビティのボタンが機能しないという問題に直面しています。ネットワークを無効にする前は、ボタンはonClick機能を正しくトリガーしますが、ネットワークを無効にした後は、ボタンは単にonClick機能をトリガーしません。

以下は私が使用しているコードです。現時点では非常に些細なアプリケーションであり(すべてのスタブコードはEclipseによって生成されます)、この問題の原因を特定することはできません。誰かが以前にこのような問題に遭遇したことがありますか?アドバイスありがとうございます。

このコードをエミュレーターのAndroid4.0.1AVDで実行します。

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 に答える