저는 안드로이드 개발을 처음 사용하고 있으며 프레임 워크의 작동 방식을 이해하는데 어려움이 있습니다. 나는 간단한 경험을 얻기 위해 간단한 게임을 만들려고 노력하며 아래에 도움을 요청하고 싶다. 내 주요 활동에는 내 게임에서 다양한 데이터를 표시 할 수있는 TextView가 몇 개 있으며 그 아래에는 게임 자체에 대한 개체를 그리는 캔버스가있는 AnimatedView라는 사용자 지정보기가 있습니다. 캔버스에있는 객체를 기반으로 TextViews를 업데이트하여 예를 들어 표시하고 싶습니다. 오브젝트 수, 플레이어 레벨 등.사용자 정의보기에서 안드로이드 UI 업데이트
아래 코드로 TextView 오브젝트를 얻을 수 있지만 textView.setText (...)를 호출하면 아무 것도 변경되지 않습니다. UI.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
MainActivity.java
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
...
tools:context="com.danielsh.test.teststuff.MainActivity"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/myTextView"
android:text="Change this!" />
<com.danielsh.test.teststuff.AnimatedView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/animView" />
</LinearLayout>
:
아래 내 실제 코드의 단순화 된 버전, 문제를 설명하는 것입니다
AnimatedView.java
public class AnimatedView extends View {
public AnimatedView(Context context, AttributeSet attrs) {
super(context, attrs);
final Handler uiHandler = new Handler();
final Runnable runnable = new Runnable() {
public void run() {
LayoutInflater inflater = LayoutInflater.from(getContext());
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.activity_main, null, false);
TextView textView = (TextView) layout.findViewById(R.id.myTextView);
textView.setText("" + (System.currentTimeMillis()/1000));
textView.invalidate();
}
};
uiHandler.postDelayed(runnable, 1000);
}
}
나는 내가 UI에 볼 수있어 실제 텍스트 뷰 객체로 작업 아니에요 가정,하지만 확실하지 뭐라고 그 일을 올바른 방법이 될 수.
동일한 문제를 다루는 기존 게시물에 대한 도움말이나 포인터는 많은 도움이됩니다.
텍스트를 설정 한 후에'textView.invalidate();'를 시도 했습니까? –
@SatyenUdeshi textView.invalidate(); 나를 위해 차이를 만들지 않습니다. –
@tynn handler.postDelayed()는 실제로 더 좋으며, 불행히도 같은 문제가 있습니다. –