0

おはよう、

前のアイテムのリストがあります。& 次へボタン。ユーザーがリストの先頭にいる場合、前へのボタンは無効になります。[次へ] をクリックすると、次のレコードに移動し、クリック ハンドラーが [前へ] ボタンを true に設定します。ただし、エミュレーターでは、有効になっているボタンは表示されません。[次へ] をクリックすると 3 番目のレコードに移動し、再びハンドラーによって [前へ] ボタンが有効に設定されますが、今回はエミュレーターで有効になります。私はここでわらをつかんでいますが、無効にして再描画する必要がありますか?? このような基本的なタスクが機能しない理由がわかりません。

XML の場合:

<Button
    android:id="@+id/btn_PrevLift"
    ...
    android:enabled="false"
    android:onClick="btn_PrevLiftClick" />

ハンドラー コード内:

private void UpdateNavButtonStatus(int z)
{
     ...
     btn_Next.setEnabled(true);
 btn_Prev.setEnabled(true);
     ....
}

いいえ、Eclipseデバッグで変数値を見ると、有効なプロパティがどの状態でも表示されないのはなぜですか?

ここに画像の説明を入力

詳細情報 少なくとも私には非常に奇妙です。XML で定義されたイベント ハンドラーの使用から、以下のようにプログラムで定義されたものに移行すると、うまく機能します!!!???

btn_Nxt.setOnClickListener(new OnClickListener()
        {
public void onClick(View v)
    {
        //Call helper methods etc...
    }
 });

私はそれを持っていると思いますが、正確な理由はわかりません

そのため、Button オブジェクトのハンドルを取得しようとしたときに、View.findViewById(etc) を使用していました。XML からプログラムで宣言されたイベント ハンドラーに変更したとき、ViewGroup.findViewById を使用しました。ViewGroup を使用すると xml に戻ると、動作しているように見える「異なる」ハンドルが得られます...????

4

2 に答える 2

0

私は問題を特定しました。もちろん、問題は私にあります。ボタンを有効にしてから、ListView が次のレコードに更新されました。もちろん、有効にしたボタンは 1 つ遅れていたので、もう一度クリックするとボタンが突然有効になったように見えましたが、そうではありませんでした。もう一度クリックすると、レコード 3 に移動し、有効になっているレコード 2 のボタンが表示されました。

ボタンが ListView の一部であり、レコードごとに新しいボタンが描画されていることを確認してください。OOHHHHすべてがどのように動作していたかが今では非常に理にかなっています.

とにかく、ユーザーがレコードをナビゲートしてもボタンが一定のままになるように、ボタンを ListView レイアウトから移動しました。

于 2012-11-17T00:39:15.160 に答える
0

わかりましたので、できることは、変数 count を宣言し、次に f ボタンをクリックして count の値をインクリメントすることです..Back ボタンをクリックすると count の値をデクリメントし、count<0 の間のタスクの条件を与えます戻るボタンが実行され、それ以外は何も行われません

于 2012-11-16T19:32:56.240 に答える