私は2つのグラフィックス、edittextフィールド、およびボタンを持つアクティビティ(メインアクティビティではありません)を持っています。EditTextキャンバスのdrawTextを変更します。
すべてのボタンは、ユーザーをメインアクティビティに戻します。
EditTextフィールドが変更されたときに、テキストグラフィックスのいずれかを変更したいと考えています。したがって、ユーザがedittextフィールドにテキストを入力するたびに、グラフィックテキストは同じ瞬時に変化します。現在のところ、キーパッドを閉じると変更されるだけです。
HERESに私のコード
public class ThirdActivity extends AppCompatActivity {
private DemoView demoview;
private EditText editText;
private String graphicText = "blank";
private Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
demoview = new DemoView(this);
Button button = (Button) findViewById(R.id.thirdActButton);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
onButtonPress();
}
});
editText = (EditText) findViewById(R.id.thirdActEditText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
if (!editText.getText().toString().equalsIgnoreCase("")){
graphicText = editText.getText().toString();
Log.d("MyApp",graphicText);
}
}
});
LinearLayout v = (LinearLayout) findViewById(R.id.linearlayout);
v.addView(demoview);
}
private class DemoView extends View{
public DemoView(Context context){
super(context);
}
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint = new Paint();
// draw some text using STROKE style
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setStrokeWidth(5);
paint.setColor(Color.BLUE);
paint.setTextSize(100);
canvas.drawText("Graphic", 75, 75, paint);
// draw some text using FILL style
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setTextSize(75);
canvas.drawText(graphicText, 150, 210, paint);
}
}
}
任意の助けをいただければ幸いです。 ありがとう
もdemoview.invalidate() 'その新しい値にgraphicTextを設定した後、それだけに起こっていない場合は、カスタムビュー自体を再描画することを確認するために'を呼び出すの助けを
感謝をリフレッシュgraphicTextの値を変更し、再描画をトリガーする何かを待つ –
ジョーダルが働いてくれてありがとう。 – Swannie