Я пытаюсь реализовать простое приложение для входа в систему, в котором данные пользователя, такие как имя пользователя и пароль, жестко закодированы в нем с использованием общих настроек. Когда я пытаюсь запустить приложение, он отображает пустой белый экран и подтачивает мой комментарий бесконечным временем, даже когда я очищаю кеш приложения. Как это исправить. Пожалуйста, помогите мне.! Это мое начало деятельностиAndroid-приложение отображает белый пустой экран при запуске
public class MainActivity extends AppCompatActivity {
BaseClass session;
EditText userName;
EditText passWord;
Button logIn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
session = new BaseClass(getBaseContext());
// <---- run your one time code here
// BaseClass.getApp();
userName = (EditText) findViewById(R.id.etusername);
passWord = (EditText) findViewById(R.id.etpassword);
logIn = (Button) findViewById(R.id.btnlogin);
//toasting line
Toast.makeText(getBaseContext(),"User Login Status: "+session.isUserLoggedIn(),Toast.LENGTH_LONG).show();
session.checkLogin();
logIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String user = userName.getText().toString().trim();
String pass = passWord.getText().toString().trim();
String userVal = session.pref.getString(KEY_USERNAME, "username");
String passVal = session.pref.getString(KEY_PASSWORD, "password");
// userName.setText(userVal);
// passWord.setText(passVal);
Toast.makeText(getBaseContext(), "Editfield value:" + user, Toast.LENGTH_LONG).show();
Toast.makeText(getBaseContext(), "Actual username:" + userVal, Toast.LENGTH_LONG).show();
if (user.equals(userVal) && pass.equals(passVal)) {
session.createUserLoginSession(userVal,
passVal);
Intent intent = new Intent(MainActivity.this, QRScanning.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(), "Wrong Credentials", Toast.LENGTH_SHORT).show();
userName.setText("");
passWord.setText("");
}
}
});
}
}
Ans экземпляр приложения является
public class BaseClass extends Application {
//private static BaseClass sInstance;
public static final String PREFER_NAME = "Userdetails";
private static final String IS_USER_LOGIN = "IsUserLoggedIn";
public static final String KEY_USERNAME = "username";
public static final String KEY_PASSWORD = "password";
public static final String firstTime = "jjj";
public SharedPreferences pref;
SharedPreferences.Editor editor;
Context mContext;
int PRIVATE_MODE = 0;
@Override
public void onCreate() {
super.onCreate();
BaseClass session = new BaseClass(getApplicationContext());
if (!session.pref.getBoolean(firstTime, false)) {
session.editor.putString(KEY_USERNAME, "retailer");
session.editor.putString(KEY_PASSWORD, "beco123");
// mark first time has runned.
// SharedPreferences.Editor editor = pref.edit();
session.editor.putBoolean("firstTime", true);
session.editor.commit();
}
}
public BaseClass(Context context) {
this.mContext = context;
pref = mContext.getSharedPreferences(PREFER_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public BaseClass() {
}
//Create login session
public void createUserLoginSession(String username, String password) {
// Storing login value as TRUE
editor.putBoolean(IS_USER_LOGIN, true);
// Storing username in pref
editor.putString(KEY_USERNAME, username);
// Storing password in pref
editor.putString(KEY_PASSWORD, password);
// commit changes
editor.commit();
}
public void checkLogin() {
// Check login status
if (!this.isUserLoggedIn()) {
// user is not logged in redirect him to Login Activity
Intent i = new Intent(mContext, MainActivity.class);
// Closing all the Activities from stack
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Add new Flag to start new Activity
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Staring Login Activity
mContext.startActivity(i);
}
}
public void logoutUser() {
// Clearing all user data from Shared Preferences
editor.clear();
editor.commit();
// After logout redirect user to Login Activity
Intent i = new Intent(mContext, MainActivity.class);
// Closing all the Activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// Add new Flag to start new Activity
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Staring Login Activity
mContext.startActivity(i);
}
public boolean isUserLoggedIn() {
return pref.getBoolean(IS_USER_LOGIN, false);
}
}
Вы не должны создавать экземпляр приложения руками, это ответственность за рамки. Я считаю, что это главная проблема. – Bracadabra