我不知道我的EditText真的發生了什麼!從文本視圖編輯文本到android中的編輯文本
我有一個TextView,一個EdiText和一個按鈕。
需要的邏輯是: 單擊該按鈕時,使用TextView的內容設置EditText。 點擊「完成」後,TextView將顯示EditText的內容。
這是我到目前爲止的代碼:
speech_text = (TextView) findViewById(R.id.speech);
speech_text_edit = (EditText) findViewById(R.id.speech_edit);
editBTN= (Button) findViewById(R.id.edit);
editBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
speech_text_edit.setText(speech_text.getText().toString());
speech_text.setVisibility(View.GONE);
speech_text_edit.setVisibility(View.VISIBLE);
//open keyboard
InputMethodManager show_imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
show_imm.showSoftInput(editBTN, InputMethodManager.SHOW_IMPLICIT);
speech_text_edit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
speech_text.setText(speech_text_edit.getText().toString());
speech_text_edit.setVisibility(View.GONE);
speech_text.setVisibility(View.VISIBLE);
speech_text_edit.setFocusable(false);
//close keyboard
InputMethodManager hide_imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
hide_imm.hideSoftInputFromWindow(editBTN.getWindowToken(), 0);
}
return true;
}
});
}
});
佈局代碼:
<TextView
android:id="@+id/speech"
android:layout_width="match_parent"
android:layout_height="350dp"
android:layout_margin="25dp" android:layout_marginBottom="150dp"
android:textSize="25sp" android:textAlignment="inherit"
android:background="@drawable/curved_background"
android:textIsSelectable="true"
android:padding="10dp" android:visibility="visible"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="350dp"
android:id="@+id/speech_edit"
android:background="@drawable/curved_background"
android:imeActionLabel="actionDone"
android:visibility="gone"
android:textSize="25sp"
android:layout_margin="25dp" android:layout_marginBottom="150dp"
android:inputType="textAutoCorrect"
android:layout_gravity="top"
android:focusable="true"/>
我的問題是:
- 只能使用一次!之後,沒有鍵盤和指針。
- EditText在中心顯示一行文字。爲什麼?
感謝您的幫助。
這logCats:
05-14 19:26:45.045 15484-15484/type_helper.maxsoft.com.typehelper
D/SensorManager: unregisterListener:: Listener= [email protected]15f0c8
05-14 19:26:45.045 15484-15484/type_helper.maxsoft.com.typehelper D/Sensors: Remain listener = Sending .. normal delay 200ms
05-14 19:26:45.045 15484-15484/type_helper.maxsoft.com.typehelper I/Sensors: sendDelay --- 200000000
05-14 19:26:45.045 15484-15484/type_helper.maxsoft.com.typehelper D/SensorManager: JNI - sendDelay
05-14 19:26:45.045 15484-15484/type_helper.maxsoft.com.typehelper I/SensorManager: Set normal delay = true
05-14 19:26:45.045 15484-15484/type_helper.maxsoft.com.typehelper D/SensorManager: registerListener :: handle = 0 name= LSM330DLC 3-axis Accelerometer delay= 200000 Listener= [email protected]15de80
05-14 19:26:45.050 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getExtractedText on inactive InputConnection
05-14 19:26:45.065 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getCursorCapsMode on inactive InputConnection
05-14 19:26:45.080 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
05-14 19:26:45.080 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
05-14 19:26:45.080 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
05-14 19:26:45.100 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
05-14 19:26:45.100 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: setComposingText on inactive InputConnection
05-14 19:26:45.100 15484-15484/type_helper.maxsoft.com.typehelper W/IInputConnectionWrapper: getExtractedText on inactive InputConnection
05-14 19:27:01.140 15484-15484/type_helper.maxsoft.com.typehelper D/SensorManager: unregisterListener:: Listener= [email protected]15de80
05-14 19:27:01.140 15484-15484/type_helper.maxsoft.com.typehelper D/Sensors: Remain listener = Sending .. normal delay 200ms
05-14 19:27:01.140 15484-15484/type_helper.maxsoft.com.typehelper I/Sensors: sendDelay --- 200000000
05-14 19:27:01.140 15484-15484/type_helper.maxsoft.com.typehelper D/SensorManager: JNI - sendDelay
05-14 19:27:01.140 15484-15484/type_helper.maxsoft.com.typehelper I/SensorManager: Set normal delay = true
你的logcat沒有錯誤,所以我不確定你試圖顯示什麼 –
好的,我再解釋一下。 T.V.編寫了「你好」。 editBTN被點擊。 E.T.用鍵盤和指針顯示「Hello」。我將它編輯爲「Hello world」。點擊完成BTN,T.V.顯示「Hello world」。沒關係。現在我再次點擊editBTN。 E.T.也顯示「Hello world」,但軟鍵盤和指針不顯示/開始。 –
'setFocusable(false)'阻止您再次輸入編輯文本。 – njzk2