2011-01-28 57 views
0

我不知道我的代码问题。使用sharedpreference帮助登录活动

请帮忙。

Password.java

package com.android.steg; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 

public class Password extends Activity implements OnClickListener 
{ 
Button submitButton; 
EditText passwordEditText; 
public static final String PREFS_PRIVATE = "PREFS_PRIVATE"; 
public static final String KEY_PRIVATE = "KEY_PRIVATE"; 
public static final String PREFS_READ = "PREFS_READ"; 
public static final String KEY_READ = "KEY_READ"; 
public static final String PREFS_WRITE = "PREFS_WRITE"; 
public static final String KEY_WRITE = "KEY_WRITE"; 
public static final String PREFS_READ_WRITE = "PREFS_READ_WRITE"; 
public static final String KEY_READ_WRITE = "KEY_READ_WRITE"; 



public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pass); 
    Button submitButton = (Button) findViewById(R.id.submitButton); 
    submitButton.setOnClickListener(this); 
} 

public void onClick(View v) 
{ 
    EditText passwordEditText = (EditText) findViewById(R.id.passwordEditText); 
    SharedPreferences prefs = this.getApplicationContext().getSharedPreferences("prefs_file",MODE_PRIVATE); 
    String password = prefs.getString("password",""); 
    if("".equals(password)) 
    { 
     Editor edit = prefs.edit(); 
     edit.putString("password",passwordEditText.getText().toString()); 
     edit.commit(); 
     StartMain(); 
    } 
    else 
    { 
     if(passwordEditText.getText().toString().equals(password)) 
     { 
      StartMain(); 
     } 
    } 

} 

public void StartMain() 
{ 
    Intent intent = new Intent(this, MainActivity.class); 
    startActivity(intent); 
} 
} 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.android.steg" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="false" android:testOnly="false" android:killAfterRestore="true"> 
    <activity android:name=".Password" android:label="@string/app_name" android:clearTaskOnLaunch="true"> 
    <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:exported="true" android:name=".EncodeActivity" android:label="@string/app_name"> 

    </activity> 
    <activity android:exported="true" android:name=".DecodeActivity" android:label="@string/app_name"> 

    </activity> 

</application> 
<uses-sdk android:targetSdkVersion="7" android:minSdkVersion="5"/> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA"></uses-permission> 
    <uses-permission android:name="android.permission.READ_OWNER_DATA"></uses-permission> 

    <uses-permission android:name="android.permission.CLEAR_APP_CACHE"></uses-permission> 
    <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA"></uses-permission> 

    </manifest> 

Pass.xml

enter image description here

当提交按钮被按下时,应该打开MainActivity.java

我的问题是我每次按提交按钮应用程序力量关闭。它应该切换到另一个活动(MainActivity)。

+0

而......问题是什么? – Cristian 2011-01-28 02:28:10

+0

@Cristian:我的代码可能是什么问题? – sean 2011-01-28 02:30:59

回答

3

您尚未在名为MainActivity的清单中声明Activity。另外,在eclipse的ddms选项卡中检查logcat输出,它会给出导致崩溃的行号。