텍스트 뷰를 설정하는 루틴이 있습니다. 이름의 공칭 처리, 공백 채우기 등을 수행합니다. 또한 View.Post를 사용하여 UI 스레드에서 실행됩니다. 여기 말했다 기능의 관련 부분입니다 :내 값이 Runnable에 보존되지 않는 이유는 무엇입니까?
public void setValue(final String value)
{
Log.v(TAG,"Name="+ mFieldName.getText()+" value="+value);
//Log.v(TAG,unknown);
mValue.post(new Runnable(){
@Override
public void run() {
Log.v(TAG,"Start: Name="+ mFieldName.getText()+" value="+value);
if (value==null)
mValue.setText(R.string.loading);
else
mValue.setText(value);
Log.v(TAG,"Posted: Name="+ mFieldName.getText()+" value="+mValue.getText());
}
});
mValue 및 mFieldName는 다른 장소에 지정된 TextViews 있습니다. 3 Log 문을 확인하십시오. 여기에 이름 정확도를 위해 3 있습니다
10-27 22:27:49.491: V/OOP(19865): Name=Accuracy value=25.0 m
10-27 22:27:50.171: V/OOP(19865): Start: Name=Accuracy value=null
10-27 22:27:50.171: V/OOP(19865): Posted: Name=Accuracy value=Finding...
나는 값이 실행 가능한을 만드는 과정에서 모든 변경 수있는 방법을 이해하는 매우 힘든 시간을 보내고 있습니다. 이견있는 사람?
나는'setValue' 메소드를 두 번 이상 호출하면 위의 로그가 가능하다고 생각합니다. (연속적으로, 예를 들어 순환으로). 그렇게하니? –
이상합니다. 나는 당신이 인스턴스 변수로서'value'를 가지는'Runnable' 클래스를 가지고 있다면 이것을 상상할 수 있습니다 -'static abstract class Runnable java.lang.Runnable {String value; }'. 수입품을 확인할 수 있습니까? ' –
이상합니다. 코드의 다른 곳 (즉, 전역 변수)에 'value'라는 이름을 사용합니까? – Luis