将Activity.onCreate中的参数传递给其他方法

时间:2013-04-10 19:52:07

标签: java android

我目前正在学习Java,并且是Android的新手。下面是我的onCreate方法,最后我有两个EditText字段,passT(纯文本)和keyT(加密密钥)。我想将这两个作为参数传递给我的加密方法(也在下面)并检索结果并在密码EditText中设置值。

我希望将值设置为用户将输入的电子邮件地址(emailT,当前没有为其设置EditText字段。)

public class ScreenNext extends Activity {

    int key = 0;
    static char ch;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen_next)

        EditText emailT;//Import  EditTexts (Key and Email)  
        Button send = (Button) findViewById(R.id.bSend);//Import button1 (Send)
        final EditText passT = (EditText) findViewById(R.id.etTogg);//passT variable for Password Text for EditText field
        final EditText keyT = (EditText) findViewById(R.id.etKey);
        final EditText passT = (EditText) findViewById(R.id.etTogg);//passT variable for Password Text for EditText field

        send.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                String keyText = keyT.getText().toString();
                String passText = passT.getText().toString();
            }

        });

    }//End onCreate
    ...
}

我的加密方法(其他包括在需要为我的解决方案观察的情况下):

public static String message(String choice, String subKey, String message) {
    int Option = Integer.parseInt(choice);//Must pareseInt
    int key = Integer.parseInt(subKey);
    message = message.toLowerCase();

    //If the key is 26, prompt the user to change the key

    if (key % 26 == 0) {

        //Toast.makeText(getApplicationContext(), "You can't use a modulus of 26 as a key", Toast.LENGTH_LONG).show();

    }

    ScreenNext subcipher_1 = null;
    String CipherTxt = subcipher_1.encrypt(message, key);
    return CipherTxt;
}

// Message prompt method finished, now we create the method that has the
// encrypting algorithms

public static String encrypt(String Txt, int key) {

    //local var cipherText of type string is init empty
    String CipherTxt = "";//May be able to remove this'un 
    String cText="";
    //enhanced for loop 
    // start at 0, go until "as long as input text" 
    for (int i = 0; i < Txt.length(); i++) {
        //get a char from the string at index i (start at 0 work through to end of string)
        // and store in local var extractedChar for type char
        char extractedChar = Txt.charAt(i);
        /* enhanced for loop 
         * start at 0, go until end of user entered cipherKeyValue
         * either set to lowercase a or add one to the char
         * uses the checkifz method
         */
        for (int j = 0; j < key; j++) {
            ScreenNext subcipher_1 = null;
            if (subcipher_1.checkIfZ(extractedChar) == true) {
                extractedChar = 'a';
            } else {
                extractedChar++;
            }
            CipherTxt= new StringBuilder().append(extractedChar).toString();
        }
        //add extracted char to builder object
        //change object builder to string and assing to cipherText of type String
        //create new object builder from StringBuilder class
        cText = cText.concat(CipherTxt);
    }
    //Pass the cipherText value out of the method to whom ever called it

    return cText;
}

1 个答案:

答案 0 :(得分:6)

在类级别声明变量

public class ScreenNext extends Activity {

    int key = 0;
    static char ch;
    String keyText = null;
    String passText = null;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ....
        send.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                keyText = keyT.getText().toString();
                passText = passT.getText().toString();
            }
        });
        // ...
    }
    // ...
}