2つのアクティビティがあります1.Register.java2.SecureXActivity.java[登録]アクティビティで、共有設定を使用してアプリケーションの登録を行っています。共有設定を使用して、登録アクティビティを1回だけ表示しました。今、私の要件は、登録時に一度だけ表示される登録アクティビティからユーザー名を取得し、SecureXActivityアクティビティに保存することです。登録後、このアクティビティのみがユーザーに表示されます。それで、この点で私を助けてください?私はアンドロイドに不慣れです。
私のコードを以下に示します
Register.java
public class Register extends Activity
{
public static final String PREFS_NAME = "LoginPrefs";
public static final String USER_NAME = "USER";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
/*
* Check if we successfully logged in before.
* If we did, redirect to home page
*/
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
if (settings.getString("logged", "").toString().equals("logged"))
{
Intent intent = new Intent(Register.this, SecureXActivity.class);
startActivity(intent);
}
Button b = (Button) findViewById(R.id.btnRegister);
b.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
EditText username = (EditText) findViewById(R.id.reg_employeeid);
EditText password = (EditText) findViewById(R.id.reg_password);
String welcm ="Welcome";
String space = " ";
EditText firstname = (EditText)findViewById(R.id.reg_firstname);
EditText lastname = (EditText)findViewById(R.id.reg_lastname);
String getfirstname = firstname.getText().toString();
String getlasttname = lastname.getText().toString();
String welcome=welcm.concat(space).concat(getfirstname).concat(space).concat(getlasttname);
if(username.getText().toString().length() > 0 && password.getText().toString().length() > 0 )
{
if(username.getText().toString().equals("test") && password.getText().toString().equals("test"))
{
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("logged", "logged");
editor.commit();
Intent intent = new Intent(Register.this, SecureXActivity.class);
intent.putExtra("name", welcome);
startActivity(intent);
}
}
}
});
}
}
SecureXActivity.java
public void onCreate(Bundle savedInstanceState)
{
Thread.setDefaultUncaughtExceptionHandler(new exceptionHandler(this));
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras =getIntent().getExtras();
if (extras != null)
{
String value = extras.getString("name");
TextView txtwelcm= (TextView)findViewById(R.id.textViewwelcm);
txtwelcm.setText(value);
}
}
あるアクティビティから別のアクティビティへの値が必要であり、値を別のアクティビティに保存する必要があります。上記のコードでは、インテントを使用してこれを実行しました。ただし、問題は、値が2番目のアクティビティで1回だけ表示されることです。戻るボタンまたはホームキーを押しても値が表示されない方法
@Picarusへの応答として追加されました:
問題は、同じ共有設定を使用して、登録アクティビティを1回だけ表示していることです。ただし、SecureXアクティビティに名前が表示されていません。同じ共有設定を使用して、レジスタアクティビティからsecurexアクティビティに値を運ぶことは可能ですか。
コード全体を以下にもう一度示しますRegister.java
public class Register extends Activity
{
public static final String PREFS_NAME = "LoginPrefs";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
/*
* Check if we successfully logged in before.
* If we did, redirect to home page
*/
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
if (settings.getString("logged", "").toString().equals("logged"))
{
Intent intent = new Intent(Register.this, SecureXActivity.class);
startActivity(intent);
}
Button b = (Button) findViewById(R.id.btnRegister);
b.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
EditText username = (EditText) findViewById(R.id.reg_employeeid);
EditText password = (EditText) findViewById(R.id.reg_password);
String welcm ="Welcome";
String space = " ";
EditText firstname = (EditText)findViewById(R.id.reg_firstname);
EditText lastname = (EditText)findViewById(R.id.reg_lastname);
String getfirstname = firstname.getText().toString();
String getlasttname = lastname.getText().toString();
String welcome=welcm.concat(space).concat(getfirstname).concat(space).concat(getlasttname);
if(username.getText().toString().length() > 0 && password.getText().toString().length() > 0 )
{
if(username.getText().toString().equals("test") && password.getText().toString().equals("test"))
{
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("name", welcome);
editor.commit();
Intent intent = new Intent(Register.this, SecureXActivity.class);
//intent.putExtra("name", welcome);
startActivity(intent);
}
}
}
});
}
}
SecureXActivity.java
public class SecureXActivity extends Activity
{
public static final String PREFS_NAME = "LoginPrefs";
private ListView m_listview;
Button btnSendlogs;
Button btnMailadmin;
Button btnContactSupport;
Button btnSettings;
@Override
public void onCreate(Bundle savedInstanceState)
{
Thread.setDefaultUncaughtExceptionHandler(new exceptionHandler(this));
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Here we are setting the installation date of a application
ContextWrapper context = this;
PackageManager packageManager = context.getPackageManager();
ApplicationInfo appInfo;
try
{
appInfo = packageManager.getApplicationInfo("com.simsys.securex", 0);
String sourceDir= appInfo.sourceDir;
long dateTimeSync= new File(sourceDir).lastModified();
String DateTimeStamp=getDate(dateTimeSync, "dd/MM/yyyy hh:mm:ss");
String dateTimeSync2="Installed_Date:";
String dateTimeSync3=dateTimeSync2.concat(DateTimeStamp);
TextView txtCurrentTime= (TextView)findViewById(R.id.textViewdatetime);
txtCurrentTime.setText(dateTimeSync3);
}
catch (NameNotFoundException e)
{
e.printStackTrace();
}
//Here We Welcome the user
//List View
m_listview = (ListView) findViewById(R.id.list_view);
ArrayList<String> listItems=new ArrayList<String>();
listItems.add("CAMERA");
listItems.add("RECORDER");
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems);
m_listview.setAdapter(adapter);
if(isBluetoothServiceRunning())
{
listItems.add("BLUETOOTH");
}
if(isGprsServiceRunning())
{
listItems.add("GPRS");
}
if(isWifiServiceRunning())
{
listItems.add("WIFI");
}
adapter.notifyDataSetChanged();
//Call to Buttons Functionality
btnSendlogs = (Button) findViewById(R.id.button_sendlogs);
btnSendlogs.setOnClickListener(myhandler1);
btnMailadmin=(Button) findViewById(R.id.button_mailtoadmin);
btnMailadmin.setOnClickListener(MailadminHandler);
btnContactSupport = (Button) findViewById(R.id.button_contactsupport);
btnContactSupport.setOnClickListener(ContactSupportHandler);
}
//Navigation from Registration to Main page
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater Inflater = getMenuInflater();
Inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if (item.getItemId() == R.id.logout)
{
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String data2=settings.getString("name", "");
TextView txtwelcm= (TextView)findViewById(R.id.textViewwelcm);
txtwelcm.setText(data2);
SharedPreferences.Editor editor = settings.edit();
editor.remove("name");
editor.commit();
finish();
}
return super.onOptionsItemSelected(item);
}