代码不起作用

时间:2016-09-29 16:37:46

标签: java android

我尝试使用两个不同的ArrayLists创建一个使用该网站保存密码的APK。这样,我可以获得正确的站点索引号,并根据此索引号获取密码。在MainActivity的开头,我向ArrayLists添加了两个随机字符串,因此我不必使用空的ArrayLists,但我认为这完全没用。

问题是我只能查看我输入的最后一个网站密码。之前的组合已经丢失了。"

代码:

MainActivity.java

package com.example.prive.passwordsafe;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    public ArrayList<String> passwordList = new ArrayList<>();
    public ArrayList<String> siteList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        passwordList.add("ejifjejfijeifjeijfiejifjeijfiejfijefie");
        siteList.add("iejfijeifjiejfiejidvjijijeijivjiejvijeivjejv");

        Button addButton = (Button) findViewById(R.id.addButton);
        Button showButton = (Button) findViewById(R.id.showButton);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                firstIntent();
            }
        });
        showButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                secondIntent();
            }
        });
    }

@Override
    public void onResume(){
super.onResume();
add();
    }
    private void firstIntent() {

        Intent intent = new Intent(MainActivity.this, addActivity.class);
        intent.putStringArrayListExtra("passwordList", passwordList);
        intent.putStringArrayListExtra("siteList", siteList);
        startActivity(intent);
    }

    private void secondIntent() {
        Intent intent = new Intent(MainActivity.this, showActivity.class);
        intent.putStringArrayListExtra("passwordList", passwordList);
        intent.putStringArrayListExtra("siteList", siteList);
        startActivity(intent);
    }

    public void add(){
        Bundle pickupData = getIntent().getExtras();
        if(pickupData == null){
            return;
        }
        String receivedPassword = pickupData.getString("Password");
        String receivedSite;
        receivedSite = pickupData.getString("Site");
        passwordList.add(receivedPassword);
        siteList.add(receivedSite);
    }
}

addActivity.java

package com.example.prive.passwordsafe;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class addActivity extends AppCompatActivity {

    public EditText siteInsert, passwordInsert;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_toevoeg);
        siteInsert = (EditText) findViewById(R.id.siteInsert);
        passwordInsert = (EditText) findViewById(R.id.passwordInsert);

        siteInsert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast msg = Toast.makeText(getBaseContext(), "site", Toast.LENGTH_LONG);
                msg.show();
            }
        });
        passwordInsert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast msg = Toast.makeText(getBaseContext(), "password", Toast.LENGTH_LONG);
                msg.show();
            }
        });

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String password = passwordInsert.getText().toString();
                String site = siteInsert.getText().toString();
                Intent intent = new Intent(addActivity.this, MainActivity.class);
                intent.putExtra("Password", password);
                intent.putExtra("Site", site);
                startActivity(intent);
            }
        });
    }
}

showActivity.java

package com.example.prive.passwordsafe;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class showActivity extends AppCompatActivity {
public EditText editText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_toon);

        Button showButton = (Button) findViewById(R.id.showButton);
        Button backButton = (Button) findViewById(R.id.backButton);
        editText = (EditText) findViewById(R.id.editText);
        final TextView textView = (TextView) findViewById(R.id.textView);

        Bundle pickupData = getIntent().getExtras();
        final ArrayList<String> passwordList = pickupData.getStringArrayList("passwordList");
        final ArrayList<String> siteList = pickupData.getStringArrayList("siteList");

        editText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast msg = Toast.makeText(getBaseContext(), "site", Toast.LENGTH_LONG);
                msg.show();
            }
        });


        if (passwordenList != null && siteList != null) {
            showButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


                    int numberOfPasswords = passwordenList.size();

                    for (int i = 0; i <= numberOfPasswords; i++) {
                        String password;

                        String temporary = editText.getText().toString();
                        if (temporary.equals(siteList.get(i))) {
                            password = passwordList.get(i);
                            textView.setText(password);
                        }else{
                               password = "wrong input";
                             textView.setText(password);
                             }
                        }

                }
            });
        }else{
            return;
        }

        backButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });

    }
}

1 个答案:

答案 0 :(得分:1)

退出活动时,其上的所有数据都将丢失。您必须在SQLite中保留ArrayList或改为使用SharedPreferences

SharedPreferences:https://developer.android.com/reference/android/content/SharedPreferences.html

SQLite:https://developer.android.com/training/basics/data-storage/databases.html