- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的一项 Activity 中有一堆 EditText。它们在屏幕上可见,用户可以在其中输入内容。用户还可以移动到另一个完全不同的屏幕。但是,目前,如果他/她返回到具有 EditText 的 Activity,那么他/她的输入将不再显示在 [第一个] 屏幕上。
我可以使用什么代码将用户输入保留在第一个屏幕/第一个 Activity 的 EditText 中?
提前致谢。
编辑(刚刚更新的代码)
package com.example.owner.introductoryapplication;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class UserDataInputActivity extends AppCompatActivity
{
String[] genderOptions = {"Male", "Female"};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_data_input);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.select_dialog_singlechoice, genderOptions);
AutoCompleteTextView acTextView = (AutoCompleteTextView) findViewById(R.id.GenderPromptValue);
acTextView.setThreshold(1);
acTextView.setAdapter(adapter);
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("Agestr",(((EditText) findViewById(R.id.AgePromptValue)).getText().toString()));
savedInstanceState.putString("Speedstr",(((EditText) findViewById(R.id.GaitSpeedPromptValue)).getText().toString()));
savedInstanceState.putString("Weightstr",(((EditText) findViewById(R.id.WeightPromptValue)).getText().toString()));
savedInstanceState.putString("Heightstr",(((EditText) findViewById(R.id.HeightPromptValue)).getText().toString()));
savedInstanceState.putString("Genderstr",(((EditText) findViewById(R.id.HeightPromptValue)).getText().toString()));
savedInstanceState.putString("UPDRSstr",(((EditText) findViewById(R.id.UPDRSPromptValue)).getText().toString()));
savedInstanceState.putString("TUAGstr",(((EditText) findViewById(R.id.TUAGPromptValue)).getText().toString()));
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState);
((EditText) findViewById(R.id.AgePromptValue)).setText(savedInstanceState.getString("Agestr"), TextView.BufferType.EDITABLE);
((EditText) findViewById(R.id.GaitSpeedPromptValue)).setText(savedInstanceState.getString("Speedstr"), TextView.BufferType.EDITABLE);
((EditText) findViewById(R.id.WeightPromptValue)).setText(savedInstanceState.getString("Weightstr"), TextView.BufferType.EDITABLE);
((EditText) findViewById(R.id.HeightPromptValue)).setText(savedInstanceState.getString("Heightstr"), TextView.BufferType.EDITABLE);
((EditText) findViewById(R.id.HeightPromptValue)).setText(savedInstanceState.getString("Genderstr"), TextView.BufferType.EDITABLE);
((EditText) findViewById(R.id.UPDRSPromptValue)).setText(savedInstanceState.getString("UPDRSstr"), TextView.BufferType.EDITABLE);
((EditText) findViewById(R.id.TUAGPromptValue)).setText(savedInstanceState.getString("TUAGstr"), TextView.BufferType.EDITABLE);
}
public void onGenericMenuClick(View v)
{
Intent intent = null;
ArrayList<String> inputStrings = new ArrayList<>();
inputStrings.add((((EditText) findViewById(R.id.AgePromptValue)).getText().toString()));
inputStrings.add((((EditText) findViewById(R.id.GaitSpeedPromptValue)).getText().toString()));
inputStrings.add((((EditText) findViewById(R.id.WeightPromptValue)).getText().toString()));
inputStrings.add((((EditText) findViewById(R.id.HeightPromptValue)).getText().toString()));
if(((EditText) findViewById(R.id.GenderPromptValue)).getText().toString().equals("Male"))
inputStrings.add("1");
else //(((EditText) findViewById(R.id.GenderPromptValue)).getText().toString() == "Female")
inputStrings.add("2");
inputStrings.add((((EditText) findViewById(R.id.UPDRSPromptValue)).getText().toString()));
inputStrings.add((((EditText) findViewById(R.id.TUAGPromptValue)).getText().toString()));
// if you click info buttons (even if the EditTexts are blank) show the Dialogs
if(v.getId() == R.id.gaitInfoButton || v.getId() == R.id.UPDRSInfoButton || v.getId() == R.id.TUAGInfoButton)
{
if(v.getId() == R.id.gaitInfoButton)
{
AlertDialog.Builder builder = new AlertDialog.Builder(UserDataInputActivity.this);
builder.setMessage(R.string.GaitInformationContent)
.setPositiveButton(R.string.acknowledge, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id) {}
});
// Create the AlertDialog object and return it
builder.create().show();
}
if(v.getId() == R.id.UPDRSInfoButton)
{
AlertDialog.Builder builder = new AlertDialog.Builder(UserDataInputActivity.this);
builder.setMessage(R.string.UPDRSInformationContent)
.setPositiveButton(R.string.acknowledge, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id) {}
});
// Create the AlertDialog object and return it
builder.create().show();
}
if(v.getId() == R.id.TUAGInfoButton)
{
AlertDialog.Builder builder = new AlertDialog.Builder(UserDataInputActivity.this);
builder.setMessage(R.string.TUAGInformationContent)
.setPositiveButton(R.string.acknowledge, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {}
});
// Create the AlertDialog object and return it
builder.create().show();
}
}//If input fields are blank, refresh the activity
else if(inputStrings.get(0).matches("") == true
|| inputStrings.get(1).matches("") == true
|| inputStrings.get(2).matches("") == true
|| inputStrings.get(3).matches("") == true
|| inputStrings.get(4).matches("") == true
|| inputStrings.get(5).matches("") == true
|| inputStrings.get(6).matches("") == true)
{
Toast.makeText(this, "Please enter all the fields", Toast.LENGTH_SHORT).show();
startActivity(new Intent(this, UserDataInputActivity.class));
}//if the input fields are filled and you aren't clicking any info buttons, then navigate to whatever, specified page
else
{
if(v.getId() == R.id.pasttests)
intent = new Intent(this, PastDiagnosticResult.class);
else if (v.getId() == R.id.currenttest)
{
intent = new Intent(this, CurrentDiagnosticResultActivity.class);
intent.putExtra("INPUTVALUE",inputStrings);
}
else if (v.getId() == R.id.myinfo)
intent = new Intent(this, UserDataInputActivity.class);
else if(v.getId() == R.id.VoiceTestingPrompt)
intent = new Intent(this, SpeechRecognition.class);
if (intent != null) {
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.owner.introductoryapplication">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android:permission.RECORD_AUDIO" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".HomePageActivity" />
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
<activity android:name=".UserDataInputActivity" />
<activity android:name=".CurrentDiagnosticResultActivity" />
<activity android:name=".PastDiagnosticResult"></activity>
<activity android:name=".SpeechRecognition"></activity>
</application>
</manifest>
最佳答案
您可以使用onSavedInstanceState
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putString("message", "This is my message to be reloaded");
super.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
String message = savedInstanceState.getString("message");
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}
关于java - 从一项 Activity 转移到另一项 Activity 时如何保留 editText 输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55481686/
我有一个测试即将进行,我想澄清两个有关参数的问题。 在我的笔记中指出,将参数传递给函数的推荐方法是使用“按引用传递” const type& x; // for "in" parameters
当我通过 OMG 2.5(Beta)推广的 UML 规范阅读以下概念时: in: Indicates that Parameter values are passed in by the caller
我试图在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是限制用户在填充值后修改输入中的值。 该值来自将在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入。 代
我在jQuery中使用模式弹出窗口控件,该弹出窗口具有由jQuery Tokenize输入插件提供动力的输入文本。问题是,当我在模式弹出文本框中键入内容时, token 化插件的搜索结果显示为隐藏在弹
我有一个问题。当我选中复选框时,系统工作正常,总值发生变化,但一旦我修改文本输入,它就会变为 0。我需要将此文本框输入排除在更改值之外。 这是 html: $15000 $
我正在努力让它发挥作用,但还是有些不对劲。 我想用 CSS 设置提交按钮的样式以匹配我已有的按钮。 风格: input[type="button"], input[type="submit"], b
import java.util.*;; public class selection { Scanner in=new Scanner(System.in); private
这可能是一个非常菜鸟的问题。假设我有一个带宽限制为 100MB/s 的网卡,那么输入/输出带宽是否有可能达到该限制 同时 ?或者我会在任何时候遇到这个不等式:in bandwidth + out ba
看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) . scala> Map(1
我有这样的东西 一个 乙 问? 是或否 数字 数字或零 我想做的是: 如果 B1 = “Y”,则让用户在 B2 中输入一个数字。 如果 B1 = “N”,则将 B2 中的值更改为零,并且不允许用户在
我有一个包含许多列的表,我想添加 input标题单元格内的字段,但我希望输入适合根据正文内容的宽度。 这是没有 input 的样子领域: 这就是 input 的样子领域: 可以看出,像“index”和
关于为 FTP 客户端设置传出和传入文件夹,您遵循哪些最佳实践(如果有)?我们通常使用“outgoing”和“incoming”,但无论你如何表述方向,它都可以有两种解释方式,具体取决于名称相对于哪一
我正在尝试“求解”给定 d 的 Pell 方程:x^2 - d * y^2 = 1,或者至少我想得到最小的 x > 0 来求解方程。到目前为止,一切都很好。这是我的 Haskell 代码 minX :
我是VS Code的新手,可以使用Ctrl + Enter将代码运行到python交互式窗口中。我希望光标自动移动到下一行,因此我可以逐行浏览代码。 能做到吗? 最佳答案 如this blog pos
我正在创建一个 bool 值矩阵/二维数组,并且我想为 dategrid 推断一种不仅仅是“ANY”的类型。 let yearRange = [2000,2001,2002,2003,2004]; l
我有两个排序的列表,例如 a = [1, 4, 7, 8] b = [1, 2, 3, 4, 5, 6] 我想知道a中的每个项目是否在b中。对于上面的示例,我想找到 a_in_b = [True, T
菜鸟警报 这很奇怪 - 当我编写以下代码时,尝试在 AngularJS 中创建自定义指令: myModule.directive('myTab', function(){ console.lo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
假设我正在使用 gdscript 静态类型,并且对于一个函数参数,我事先不知道我会得到什么。这就是 python 中 typing.Any 的作用。如何使用 gdscript 做到这一点? 似乎 Va
我使用 dropzone 上传多个图像,并且工作正常,直到我想为每个图像插入品牌和网址。 我遇到的唯一问题是,当我要从输入字段获取值时,我会从服务器获取来自字段(品牌、网址)的未定义值,但如果我使用静
我是一名优秀的程序员,十分优秀!