java - android studio中的文本视图正在消失
问题描述
我在活动中的文本视图在configure
设置后消失了
小文本192.168.0,
是文本视图仅在我点击保存按钮时出现
当我回到这个活动时,textview 完全消失了
编辑:添加了我的 java 代码和我的 xml
package com.example.smartcharge;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Objects;
public class configure extends AppCompatActivity {
EditText ip, port;
public TextView tv;
Button SAVEBTN;
SharedPreferences sharedPreferences;
public static final String MyPREFERENCES = "MyPrefs";
public static final String IPSTR = "ipKey";
public static final String PORTSTR = "portKey";
public static final String TEXT1 = "textkey";
private String text1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_configure);
Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(false);
ip = findViewById(R.id.et1);
port = findViewById(R.id.et2);
SAVEBTN = findViewById(R.id.savebtn);
tv = findViewById(R.id.tv2);
SAVEBTN.setOnClickListener(v -> {
senddata();
});
loaddata();
updateviews();
}
public void senddata(){
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(configure.this);
SharedPreferences.Editor editor = sharedPreferences.edit();
String ipstr = ip.getText().toString();
String portstr = port.getText().toString();
tv.setText(ipstr + "," + portstr);
editor.putString(IPSTR, ipstr);
editor.putString(PORTSTR, portstr);
editor.putString(TEXT1, tv.getText().toString());
editor.apply();
Toast.makeText(configure.this,"saved",Toast.LENGTH_LONG).show();
}
public void loaddata(){
sharedPreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
text1 = sharedPreferences.getString(TEXT1 , "");
}
public void updateviews(){
tv.setText(text1);
}
}
下面是我的配置活动的 xml 代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".configure">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Broker Settings"
android:textSize="50sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.361"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.038" />
<TextView
android:id="@+id/tv2"
android:layout_width="327dp"
android:layout_height="49dp"
android:text="TextView"
android:textSize="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.309"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.247" />
<Button
android:id="@+id/savebtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btns"
android:text="save"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.08"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.572" />
<EditText
android:id="@+id/et2"
android:layout_width="141dp"
android:layout_height="wrap_content"
android:backgroundTint="#D1D1D1"
android:hint="port "
android:inputType="number"
android:textSize="25sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.096"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.444">
</EditText>
<EditText
android:id="@+id/et1"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:backgroundTint="#D1D1D1"
android:hint="ip Address"
android:inputType="number"
android:text="192.168.0."
android:textSize="25sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.163"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.339">
</EditText>
</androidx.constraintlayout.widget.ConstraintLayout>
有人对这种行为有任何线索吗?,如果可以的话,请帮助我:)
解决方案
由于您的 TextView 更新发生在 onCreate 中,因此文本消失了。
@Override
protected void onResume() {
SAVEBTN.setOnClickListener(v -> {
senddata();
});
loaddata();
updateviews();
}
这应该可以解决问题。浏览 Activity 生命周期,看看它是如何工作的。但基本上将方法移动到 onResume 应该可以工作。
推荐阅读
- mysql - 什么可能导致单线程内的 JPA 实体状态差异?
- python - 在 TensorFlow 中,如何沿参差不齐的维度索引 RaggedTensor?
- python - Python - 如何从列表中获取所有名称组合:TypeError:'list' object is not callable
- python - Python列表定义-根据条件插入或不插入元素
- go - 无法解释为什么“55”转换为“7”
- r - 我可以更改 RStudio 保存片段的位置吗?
- python - numpy "对象没有属性 "打开""
- java - Elasticsearch 6.4:XContentBuilder 在传递给 request.mapping() 时无法关闭
- reactjs - React/Typescript Route 组件字段类型错误
- javascript - 0 高度导航栏仍然可见?