gpt4 book ai didi

android - 跨屏幕旋转保持 View

转载 作者:行者123 更新时间:2023-11-30 04:23:50 25 4
gpt4 key购买 nike

Android 新手,所以我正在编写小程序以熟悉其工作原理。到目前为止,让我头疼的是在运行时结合屏幕旋转创建的 View 。

在尝试使用包裹时运气不佳后,我通过在旋转后重新创建 View 解决了这个问题。

程序会将输入的文本作为 TextView 添加到 EditText 下面的 TableLayout。

有没有更好的方法来解决这个问题?我找不到任何“开箱即用”的方法来执行此操作。

public class MWEActivity extends Activity {
TableLayout table;
EditText txtInput;
ArrayList<String> savedEntry = new ArrayList<String>();

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

table = (TableLayout)this.findViewById(R.id.table);
txtInput = (EditText)this.findViewById(R.id.txtInput);

txtInput.setOnEditorActionListener(new OnEditorActionListener() {

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
TextView newtext = new TextView(getApplicationContext());
newtext.setText(txtInput.getText());
savedEntry.add(newtext.getText().toString());
table.addView(newtext);
txtInput.setText("");
return true;
}
return false;
}
});
}

@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putStringArrayList("entry", savedEntry);
super.onSaveInstanceState(outState);
}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if(savedInstanceState.getStringArrayList("entry") == null){
savedEntry = new ArrayList<String>();
savedEntry.add("Return was NULL");
}else{
savedEntry = savedInstanceState.getStringArrayList("entry");
}

for(String s : savedEntry){
TextView tv = new TextView(getApplicationContext());
tv.setText(s);
table.addView(tv);
}
super.onRestoreInstanceState(savedInstanceState);
}
}

最佳答案

要么你必须像之前的答案那样禁用方向改变,要么就依赖在标准设施上。它会暂停然后重新创建您的 Activity 。不需要额外的代码。您还可以为不同的方向提供不同的布局:

http://developer.android.com/guide/practices/screens_support.html

关于android - 跨屏幕旋转保持 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com