次のボタンがあります。
.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);
}
}
});