Android 重叠布局
我在片段中实现了2个ListView和editText。例如,当用户在editText中输入内容或从左listView中选择行时,会重新加载listView。但当我最小化应用程序并在1小时后最大化时,每个应用程序上有2个列表视图,editText中有2个不同的数字(重叠),一个来自前一个状态,另一个来自新状态。我该怎么修?在Android 重叠布局,android,android-layout,Android,Android Layout,我在片段中实现了2个ListView和editText。例如,当用户在editText中输入内容或从左listView中选择行时,会重新加载listView。但当我最小化应用程序并在1小时后最大化时,每个应用程序上有2个列表视图,editText中有2个不同的数字(重叠),一个来自前一个状态,另一个来自新状态。我该怎么修?在onPause方法中卸下适配器,然后在onStart中重新加载,并保存editText中的值?有没有更简单的解决方案 将第一个listview上的侦听器设置为重新加载第二个l
onPause
方法中卸下适配器,然后在onStart
中重新加载,并保存editText中的值?有没有更简单的解决方案
将第一个listview上的侦听器设置为重新加载第二个listview:
listViewFrom.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listViewFrom.setItemChecked(position, true);
currentUnit = ((FromAdapter.ViewHolder) view.getTag()).getUnit();
createToList(inputEditText.getText().toString(), currentUnit);
}
});
和createToList函数:
private void createToList(String string, Unit unit) {
if (isNumeric(string)) {
double value = Double.valueOf(string);
List<Unit> list = createList(value, unit);
ToAdapter toAdapter = new ToAdapter(list, getActivity());
listViewTo.setAdapter(toAdapter);
}
}
private void createToList(字符串,单位){
如果(是数字(字符串)){
double value=double.valueOf(字符串);
列表=创建列表(值,单位);
ToAdapter ToAdapter=新ToAdapter(列表,getActivity());
listViewTo.setAdapter(toAdapter);
}
}
XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_marginBottom="5dp"
android:id="@+id/inputEditText"
android:inputType="numberDecimal"
android:maxLength="10"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/inputEditText"
android:orientation="horizontal">
<ListView
android:id="@+id/fromListView"
android:choiceMode="singleChoice"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.4">
</ListView>
<ListView
android:id="@+id/toListView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6">
</ListView>
</LinearLayout>
以及它的样子:
Hi falsetto,也许可以为我们提供更多的代码,以便更容易地帮助您。Cheers展示XML plsTry的代码,将屏幕方向设置为“纵向”。当我旋转屏幕时也会发生同样的情况,我尝试使用
onSaveInstanceState
将适配器设置为null,但没有帮助
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_marginBottom="5dp"
android:id="@+id/inputEditText"
android:inputType="numberDecimal"
android:maxLength="10"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/inputEditText"
android:orientation="horizontal">
<ListView
android:id="@+id/fromListView"
android:choiceMode="singleChoice"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.4">
</ListView>
<ListView
android:id="@+id/toListView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6">
</ListView>
</LinearLayout>