如何在Android中保存TextView / Array并在以后检索?

杰克·福克斯

我真的很陌生,并且在申请方面也取得了稳步的进展。我想创建一个允许用户使用滑块设置长度并生成密码的应用程序。完成此操作后,我希望用户能够保存其生成的密码。到目前为止,除了保存密码以在应用程序关闭后恢复密码之外,我已经实现了所有其他目的。我已经阅读了很多文章,但我只是不明白如何在应用程序关闭后保存应用程序数据,将其保存到文件或SharedPrefrences中。一些澄清和帮助将不胜感激。

我想实现的目标

我希望用户单击一个按钮,然后将他们生成的密码(存储在该数组中)保存在应用程序中,然后在关闭它并稍后返回时可以检索这些保存的密码。

感谢所有高级的人,对这个代码可能很混乱我深表歉意,但是我正在学习:D

谢谢

-杰克

MainActivity屏幕截图

主要活动XML:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.jrfapplications.passgen.MainActivity">

    <SeekBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/passdesc"
        android:layout_marginTop="27dp"
        android:id="@+id/seekBar"
        android:max="20"
        android:progress="10"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

    <Button
        android:text="@string/passbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:textSize="12sp"
        android:onClick="genpass"
        android:layout_marginTop="40dp"
        android:layout_below="@+id/seekBar"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/seekBar"
        android:layout_centerHorizontal="true"
        android:text="@string/SeekValueView"
        android:id="@+id/SeekTextView" />

    <TextView
        android:text="@string/pass_desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/pass_desc_size"
        android:id="@+id/passdesc"
        android:textAlignment="center"
        android:layout_marginTop="122dp"
        android:layout_below="@+id/password"
        android:layout_centerHorizontal="true" />

    <TextView
        android:text="@string/password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/password"
        android:textSize="@dimen/password"
        android:layout_marginTop="86dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:text="@string/NextPageText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:id="@+id/button2"
        android:layout_alignLeft="@+id/button"
        android:layout_alignStart="@+id/button"
        android:layout_alignRight="@+id/button"
        android:layout_alignEnd="@+id/button"
        android:onClick="goToSavedPassActivity"
        android:textSize="12sp" />

</RelativeLayout>

主要活动Java:

    public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final TextView mPassword;
    Button mGenPassButton;      //Defining Variables
    final TextView mSeekBarValue;
    Button mSavedPassActivity;

    mPassword = (TextView) findViewById(R.id.password);
    mGenPassButton = (Button) findViewById(R.id.button);        //Settings values and locations
    mSeekBarValue = (TextView) findViewById(R.id.SeekTextView);
    SeekBar seek=(SeekBar) findViewById(R.id.seekBar);
    mSavedPassActivity = (Button) findViewById(R.id.button2);

    seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { //Seekbar Actions

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { //When user moves it
            // TODO Auto-generated method stub
            SeekBarValue.seekval = progress;
            mSeekBarValue.setText(String.valueOf(progress));

        }
    });

    mSavedPassActivity.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, SavedPassActivity.class));
        }
    });

    mGenPassButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            char[] chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890".toCharArray();
            final StringBuilder sb = new StringBuilder();
            Random random = new Random();
            for (int i = 0; i < SeekBarValue.seekval; i++) {
                char c = chars[random.nextInt(chars.length)];
                sb.append(c);
            }

            final String output = sb.toString();
            mPassword.setText(output);
            SavedPassArray.SavedPasswords.add(output);
        }
    });

    }
}

SeekBarValue Java:

    public class SeekBarValue {
public static int seekval;
}

Java SavedPassedArray:

    public class SeekBarValue {
public static int seekval;
}

ViewPasswordActivity屏幕截图

密码查看活动XML:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_saved_pass"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.jrfapplications.passgen.SavedPassActivity">

    <TextView
        android:text="@string/PassList"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/PasswordsList"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:textSize="18sp"
        android:scrollbars="vertical"
        android:textStyle="normal|bold" />
</RelativeLayout>

密码查看Java:

public class SavedPassActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_saved_pass);

    final TextView mPasswordsLists;

    mPasswordsLists = (TextView) findViewById(R.id.PasswordsList);

    StringBuilder allpasswords = new StringBuilder();

    for (String s : SavedPasswords ){
        if(allpasswords.length() > 0){
            allpasswords.append("\n");
        }
        allpasswords.append(s);        }

    mPasswordsLists.setText(allpasswords.toString());
    mPasswordsLists.setMovementMethod(new ScrollingMovementMethod());

    //for(int i=0; i < SavedPasswords.size(); i++){
    }
}
比尼尔

您可以将数据保存在 SharedPreferences

//创建共享的首选项

SharedPreferences.Editor prefsEditor = getSharedPreferences("User", MODE_PRIVATE).edit();
prefsEditor.putString("User", Name);
prefsEditor.putString("Password", password);
prefsEditor.commit();

这里Name是一个包含用户名的veriable,password包含存储的密码的veriable

读取数据

SharedPreferences prefs = getSharedPreferences("User", MODE_PRIVATE);
String Name = prefs.getString("Name", null);
String password = prefs.getString("Password", null);

null很重要,如果该条目Name不存在,则它将返回null。如果您输入“ Guest”而不是null,则当该条目不存在时,它将返回“ Guest” Name

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在数据库中保存UIElement并在以后还原它们?

来自分类Dev

如何在Windows移动应用程序中存储字符串值并在以后检索

来自分类Dev

如何在文件中存储链表的头节点的地址并在以后检索

来自分类Dev

如何在C中保存/检索数据?

来自分类Dev

jQuery如何将图像源存储到临时内存中并在以后检索

来自分类Dev

在Node-RED中,如何上传到具有给定配置的节点并在以后检索配置?

来自分类Dev

如何在会话中保存SQL查询以供以后使用

来自分类Dev

如何在bash中保存功能以供以后使用?

来自分类Dev

如何在Android中保存ListView并在需要时取回它?

来自分类Dev

如何在 saveprefrence 中保存 Tokens in retofit 并在注销时删除离线 auth android

来自分类Dev

将多个ID保存到一个jQuery Cookie中,并在以后检索所有值

来自分类Dev

用户如何保存表单并在以后访问?

来自分类Dev

如何在NSUserDefault swift中保存/检索嵌套字典?

来自分类Dev

如何在mysql中保存和检索图像?

来自分类Dev

如何在Android中保存以编程方式创建的TextView

来自分类Dev

如何在FileOutputStream中保存两个以上的字符串并在不同的textview中读取这些字符串?

来自分类Dev

如何在Android中保存数据并在没有DB的情况下将其用于将来使用?

来自分类Dev

如何在片段着色器中保存值以供以后使用?

来自分类Dev

如何在局部变量中保存地理位置详细信息以供以后使用

来自分类Dev

如何将jQuery“ fancybox”插件值放在array \ variable中,并在以后使用javascript使用它?

来自分类Dev

如何从服务器保存图像并在以后重用

来自分类Dev

如何在LLVM中声明函数并在以后定义

来自分类Dev

Android的按钮onclick如何在sharedpreference中保存自定义复选框状态并在应用重启后获取它

来自分类Dev

如何在str中保存条目计数器并在“文本”字段中显示?

来自分类Dev

如何在Swift中创建全局数组并在两个TableView中保存值

来自分类Dev

颤抖如何在类中保存数组并在任何页面中打印

来自分类Dev

如何在Linux中打开目录并在其中保存代码Gerris?

来自分类Dev

如何在str中保存条目计数器并在“文本”字段中显示?

来自分类Dev

如何在ios中的Plist文件中保存,检索,删除和更新我的数据?

Related 相关文章

  1. 1

    如何在数据库中保存UIElement并在以后还原它们?

  2. 2

    如何在Windows移动应用程序中存储字符串值并在以后检索

  3. 3

    如何在文件中存储链表的头节点的地址并在以后检索

  4. 4

    如何在C中保存/检索数据?

  5. 5

    jQuery如何将图像源存储到临时内存中并在以后检索

  6. 6

    在Node-RED中,如何上传到具有给定配置的节点并在以后检索配置?

  7. 7

    如何在会话中保存SQL查询以供以后使用

  8. 8

    如何在bash中保存功能以供以后使用?

  9. 9

    如何在Android中保存ListView并在需要时取回它?

  10. 10

    如何在 saveprefrence 中保存 Tokens in retofit 并在注销时删除离线 auth android

  11. 11

    将多个ID保存到一个jQuery Cookie中,并在以后检索所有值

  12. 12

    用户如何保存表单并在以后访问?

  13. 13

    如何在NSUserDefault swift中保存/检索嵌套字典?

  14. 14

    如何在mysql中保存和检索图像?

  15. 15

    如何在Android中保存以编程方式创建的TextView

  16. 16

    如何在FileOutputStream中保存两个以上的字符串并在不同的textview中读取这些字符串?

  17. 17

    如何在Android中保存数据并在没有DB的情况下将其用于将来使用?

  18. 18

    如何在片段着色器中保存值以供以后使用?

  19. 19

    如何在局部变量中保存地理位置详细信息以供以后使用

  20. 20

    如何将jQuery“ fancybox”插件值放在array \ variable中,并在以后使用javascript使用它?

  21. 21

    如何从服务器保存图像并在以后重用

  22. 22

    如何在LLVM中声明函数并在以后定义

  23. 23

    Android的按钮onclick如何在sharedpreference中保存自定义复选框状态并在应用重启后获取它

  24. 24

    如何在str中保存条目计数器并在“文本”字段中显示?

  25. 25

    如何在Swift中创建全局数组并在两个TableView中保存值

  26. 26

    颤抖如何在类中保存数组并在任何页面中打印

  27. 27

    如何在Linux中打开目录并在其中保存代码Gerris?

  28. 28

    如何在str中保存条目计数器并在“文本”字段中显示?

  29. 29

    如何在ios中的Plist文件中保存,检索,删除和更新我的数据?

热门标签

归档