2013-02-20 4 views
0

에 값을 얻는 방법을 내가 http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/다른 활동

지금, 나는 다른 활동, 사용자 이름을 사용하여 표시 할 프로젝트를 수행하는이 웹 사이트를 따르십시오. 나는 시도했지만 성공할 수는 없다. 어떻게해야합니까? 는

public class DashboardActivity extends Activity { 
UserFunctions userFunctions; 
Button btnLogout; 
Button btnViewOrders; 
Button btnViewProfile; 

private EditText hihi; 

String pid; 

private static String KEY_NAME = "name"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //get Intent Bundle 
    Bundle bundle = this.getIntent().getExtras();  

    String name = bundle.getString("name");  

    TextView mytv = (TextView)findViewById(R.id.abc); 
    mytv.setText("you name is:" + name); 


    /** 
    * Dashboard Screen for the application 
    * */ 
    // Check login status in database 
    userFunctions = new UserFunctions(); 
    if(userFunctions.isUserLoggedIn(getApplicationContext())){ 
    // user already logged in show databoard 
     setContentView(R.layout.dashboard); 
     btnLogout = (Button) findViewById(R.id.btnLogout); 

     btnLogout.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       userFunctions.logoutUser(getApplicationContext()); 
       Intent login = new Intent(getApplicationContext(), LoginActivity.class); 
       login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       startActivity(login); 
       // Closing dashboard screen 
       finish(); 
      } 
     }); 




    }else{ 
     // user is not logged in show login screen 
     Intent login = new Intent(getApplicationContext(), LoginActivity.class); 
     login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(login); 
     // Closing dashboard screen 
     finish(); 
    } 
}  

} 

답변

0

다음 코드를보십시오 :

가 LoginActivity에서 값을 전달하려면 :

Intent intent = new Intent(getApplicationContext(),DashboardActivity.class); 
intent.putExtra("name",name); 
startActivity(intent); 

가 DashboardActivity 가치를 얻으려면 :

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
String name = extras.getString("name"); 
} 
2

당신이 개 의도를 만드는

public class LoginActivity extends Activity { 
Button btnLogin; 
EditText inputusername; 
EditText inputPassword; 
TextView loginErrorMsg; 

// JSON Response node names 
private static String KEY_SUCCESS = "success"; 
private static String KEY_ERROR = "error"; 
private static String KEY_ERROR_MSG = "error_msg"; 
private static String KEY_UID = "uid"; 
private static String KEY_NAME = "name"; 
private static String KEY_EMAIL = "email"; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 



    // Importing all assets like buttons, text fields 
    inputusername = (EditText) findViewById(R.id.loginusername); 
    inputPassword = (EditText) findViewById(R.id.loginPassword); 
    btnLogin = (Button) findViewById(R.id.btnLogin); 
    loginErrorMsg = (TextView) findViewById(R.id.login_error); 

    // Login button Click Event 
    btnLogin.setOnClickListener(new View.OnClickListener() { 



     public void onClick(View view) { 
      String username = inputusername.getText().toString(); 
      String password = inputPassword.getText().toString(); 
      UserFunctions userFunction = new UserFunctions(); 
      Log.d("Button", "Login"); 
      JSONObject json = userFunction.loginUser(username, password); 

      // check for login response 
      try { 
       if (json.getString(KEY_SUCCESS) != null) { 
        loginErrorMsg.setText(""); 
        String res = json.getString(KEY_SUCCESS); 
        if(Integer.parseInt(res) == 1){ 
         // user successfully logged in 
         // Store user details in SQLite Database 
         DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
         JSONObject json_user = json.getJSONObject("user"); 

         // Clear all previous data in database 
         userFunction.logoutUser(getApplicationContext()); 
         db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID));  


         //get username 
         EditText et = (EditText)findViewById(R.id.loginusername); 
         String name = et.getText().toString(); 

         //new Intent对 
         Intent intent = new Intent(); 
         intent.setClass(LoginActivity.this, DashboardActivity.class); 

         Bundle bundle = new Bundle(); 
         bundle.putString("name",name); 

         intent.putExtras(bundle); 

         startActivity(intent); 

         // Launch Dashboard Screen 
         Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.class); 

         // Close all views before launching Dashboard 
         dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(dashboard); 

         // Close Login Screen 
         finish(); 
        }else{ 
         // Error in login 
         loginErrorMsg.setText("Incorrect username/password"); 
        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 


} 
} 

내 코드

입니다. 첫 번째는 번들을 보유하지만, 번들이없는 인 텐트를 즉시 작성하여 첫 번째 활동을 대체하는 두 번째 활동을 시작하십시오.

//new Intent对 
Intent intent = new Intent(); 
intent.setClass(LoginActivity.this, DashboardActivity.class); 

Bundle bundle = new Bundle(); 
bundle.putString("name",name); 

intent.putExtras(bundle); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

startActivity(intent); 

두 번째 의도는 전혀 필요하지 않습니다. 원래의 의도에 플래그를 추가하면됩니다.

+0

감사합니다. 도움을 요청하십시오. 동일한 의도를 사용할 수 있습니까? 인 텐트 intent = 새 인 텐트 (getApplicationContext(), DashboardActivity.class); \t \t \t \t \t intent.putExtra ("name", name); \t \t \t \t \t // 닫기 대시 보드를 \t \t \t \t \t \t \t intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP)를 실행하기 전에 모든 뷰; \t \t \t \t \t startActivity (인 텐트); –

0

는 다음을 시도하십시오 -

pass value from one activity (Activity1.java) 

     Intent myIntent = new Intent(Activity1.this, Activity2.class); 
     myIntent.putExtra("name","name"); 
     myIntent.putExtra("id","65"); 
     startActivity(myIntent); 

get value from another activity (Activity2.java) 

    Intent intent = getIntent(); 
    String name=intent.getStringExtra("name"); 
    String id=intent.getStringExtra("id"); 
0

대신 의도를 사용하면 "공유 환경 설정"을 사용하면 훨씬 간단하고 신뢰할 수 있습니다