簡體   English   中英

軟鍵盤,編輯文本和方向更改

[英]Softkeyboard, Edit text and the Orientation change

首先,我要處理代碼的方向更改,我需要該應用程序僅通過onCreate()一次,因此在onConfigurationChanged我在必要時手動執行初始化。

關於問題:

當我按下EditText時,激活SoftKeyboard,並在我以新的方向編寫內容后更改方向,然后提交該內容(單擊確定或返回按鈕),該文本將不會出現在EditText中,即方向更改編寫的文本!

我可以在configchange之前保存來自EditText的文本,然后恢復它,但是如果更改方向后繼續在同一軟鍵盤上鍵入內容,則不會顯示符號,我可以鍵入,但是屏幕上沒有任何顯示,即在EditText

我認為這是因為在更改方向時SoftKeyboard失去了自身與原始EditText之間的鏈接,因為在configchange之后我重新初始化了布局和EditText,但對SoftKeyboard卻無話可說,實際上,我什至不知道這是否是可能的。 我不知道如何使它起作用,也許有人遇到了這樣的問題。

附言:請不要讓我使用TextWatchers-它們不是一種選擇。

UPD

我上傳了展示實際問題的視頻。 https://youtu.be/eoEBjooYNAU

這是該應用程序的代碼:

表現

<activity
android:name=".MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name" >

MainActivity

public class MainActivity extends AppCompatActivity {
EditText txtMain;
private void Init() {
setContentView(R.layout.activity_main);
txtMain = (EditText) findViewById(R.id.txtMain);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Init();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
String txtMainText = txtMain.getText().toString(); //SAVING THE STATE
Init(); //RELOADING RESOURCES AND VARS REFRESHING ACCORDING TO THE NEW LAYOUT
txtMain.setText(txtMainText); //RESTORING THE STATE
}
}

EditText

<EditText
android:layout_width="fill_parent"
android:layout_height="100dp"
android:id="@+id/txtMain"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true" />

我真的需要解決問題,也許我做了一些愚蠢的事情,或者是一些眾所周知的錯誤,無論如何,我需要您的幫助!

UPD真的沒有人可以幫助我嗎?

已通過解決問題的Fragment類,因為它是描述在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM