1

次のボタンがあります。

.setClickable(false);

.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

初期化時に。

次に、GPS 信号を待ち、信号が見つかったら、setClickable を true に設定し、ColorFilter を null に設定します。これは機能しますが、画面のどこかに触れない限りボタンは更新されません。

このボタンを押すと、別のボタンがクリック可能になり、フィルターが null に設定されるため、これは GPS コードのループ エラーではないと確信していますが、まったく同じことが起こります。

誰もこれを経験したことがありますか?2.2 と 2.3 の両方で発生します。

ボタンのアクションリスナーのサンプルを次に示します。

setgps1.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            if(!gps1set)
            {
                gps1set = true;
                setgps1.setText("Reset");
                latitude1.setText(latitude1.getText()+ "   +/-"+gpsaccuracy+"m");
                longitude1.setText(longitude1.getText()+ "   +/-"+gpsaccuracy+"m");
                altitude1.setText(altitude1.getText() + "   +/-"+gpsaccuracy+"m");
                latitude1.setTextColor(Color.GREEN);
                longitude1.setTextColor(Color.GREEN);
                altitude1.setTextColor(Color.GREEN);
                save.setClickable(true);
                save.getBackground().setColorFilter(null);


            }
            else
            {
                gps1set = false;
                setgps1.setText("Set GPS 1");
                latitude1.setText(""+lat1);
                longitude1.setText(""+lon1);
                altitude1.setText(""+alt);
                latitude1.setTextColor(Color.WHITE);
                longitude1.setTextColor(Color.WHITE);
                altitude1.setTextColor(Color.WHITE);
                save.setClickable(false);
                save.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

            }
        }

    });
4

1 に答える 1