我在android中有這個留言本應用程序。該應用程序的結構有點像這樣。 (使用意圖把額外的(密碼)) - > MainActivity(獲得Extra,FragmentManager) - > TabFragment - >(ChildFragment)Fragment1,Fragment2,SettingFragment等等。從ChildFragment傳遞變量到一個Activity Android
我在SettingFragment中有Edittext來更改要用於在LoginActivity中登錄的密碼。通過使用getText,我獲得了edittext的值並將其存儲在變量中。
問題是,我從SettingFragment獲得的變量在LoginActivity中返回null。有什麼辦法來獲得變量?在此先感謝
下面是我LoginActivity代碼
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_layout);
admin = (Button) findViewById(R.id.btn_admin);
user = (TextView) findViewById(R.id.btn_user);
txtAdmin = (EditText) findViewById(R.id.input_pin);
admin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
login();
}
});
user.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
i.putExtra("key", "user");
startActivity(i);
}
});
}
public void login(){
if (txtAdmin.getText().toString().equals(SettingFragment.getPin)) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
i.putExtra("key", SettingFragment.getPin);
startActivity(i);
} else {
Toast.makeText(getApplicationContext(), "Wrong PIN", Toast.LENGTH_SHORT).show();
}
}
SettingFragment
String setPin;
public static String getPin;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.setting_layout, container, false);
setPin = (EditText) v.findViewById(R.id.pin);
save = (Button) v.findViewById(R.id.save);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getPin = setPin.getText().toString();
}
}
}
你想要密碼的時候你使用的應用程序,或者你會在下次打開應用程序時使用它? – sumit
我需要密碼的時間應用程序啓動...它首次啓動LoginActivity – BrenDonie
你需要保存密碼在'sharedpreference'。所以你可以在下次運行你的應用時使用它。 –