как мне заставить его отображаться с TextView?
Вот код, который обновит дисплей ( TextView , используемый в вашем примере) с содержимым input ( EditText используется в вашем примере) всякий раз, когда на клавиатуре нажимается кнопка ввода (я видел, что вы запрашивали это в комментарии к другому ответу):
// get reference to the TextView
final TextView display = (TextView) findViewById(R.id.textView1);
// get reference to EditText and set listener to update TextView
final EditText input = (EditText) findViewById(R.id.editText1);
input.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
display.setText(input.getText());
return true;
}
return false;
}
});
Код выше находится внутри одного действия.
Кроме того, как изменится код, если TextView находится в другом действии?
Если display ( TextView в вашем примере) находится в другом Activity, то одним из быстрых способов его обновления является сохранение значения input ( EditText в вашем примере) как SharedPreference и имеют display Activity's onResume , считываемое в значении:
// Activity with display
public class DisplayActivity extends Activity {
private TextView display;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// get reference to the TextView
display = (TextView) findViewById(R.id.textView1);
}
public void onResume() {
super.onResume();
String inputsValue = getSharedPreferences("myprefs", 0)
.getString("input", "" /** Default value*/);
display.setText(inputsValue);
}
}
// Activity with input
public class InputActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// get reference to EditText and store in SharedPreference
final EditText input = (EditText) findViewById(R.id.editText1);
input.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
getSharedPreferences("myprefs", 0).edit()
.putString("input", input.getText().toString()).commit();
return true;
}
return false;
}
});
}
}
Вы должны заменить все жестко закодированные строковые литералы в моем коде на кодовую константу