2017-09-30 45 views
-1

我有三個活動在Android項目3 Xml佈局和3個Java類 第一個Java類。首頁和第二個是.MainActivity和第三個.Levels 我已經創建了一個意圖從.Home成功移動到.MainActivity,但是當我想要編輯代碼從.Home通過Button1移動到頁面.Levels然後移動到頁面.MainActivity通過Button2的代碼顯示沒有錯誤,但是應用程序無法在我的手機上工作,顯示不幸,App已停止我真的不知道什麼是錯的Cuz的android顯示在控制檯中沒有錯誤只是一些關於投捆如何在android中的活動之間移動?

首頁actvity:

public class Home extends AppCompatActivity implements View.OnClickListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home); 
     final Button btn = (Button) findViewById(R.id.Button1); 
     btn.setOnClickListener(this); 
    } 


    @Override 
    public void onClick(View view) { 

     Intent i= new Intent(Home.this,MainActivity.class); 
     startActivity(i); 
    } 
} 

的活動水平:

public class Levels extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.levels); 

     final Button b=(Button)findViewById(R.id.Button2); 
     b.setOnClickListener((View.OnClickListener) this); 
    } 

    @Override 
    public void onClick(View view) { 

     Intent i= new Intent(this,MainActivity.class); 
     startActivity(i); 
    } 
} 
+1

您是否有AndroidManifest.xml中列出的所有三項活動? –

+0

請發佈您的AndroidManifest.xml文件。 –

回答

0

你必須做的(如果你還沒有)的第一件事就是列出你的Manifest.xml文件所有的活動,讓你活動的主要原因之一。之後,我們可以談論從一個活動轉移到另一個活動。 執行此操作的方法是使用Intent。我要在這裏登錄並註冊示例。 在主要活動中,我們有兩個按鈕登錄和註冊。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    login(); 
    register(); 
} 

public void init(){ 
    email = (EditText) findViewById(R.id.email); 
    password = (EditText) findViewById(R.id.password); 
    login = (Button) findViewById(R.id.login); 
    register = (Button) findViewById(R.id.register); 
} 

public void login(){ 
    init(); 
    login.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      checkLogin(); 
     } 
    }); 

} 

public void register(){ 
    register.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
      startActivity(new Intent(getApplicationContext(), RegisterActivity.class)); 
     } 
    }); 
} 

public void checkLogin(){ 
    inEmail = email.getText().toString(); 
    inPassword = password.getText().toString(); 
    String message; 
    if(inEmail.isEmpty() || inPassword.isEmpty()){ 
     message = "One of the fields is empty"; 
     Toast.makeText(getApplicationContext(),message,Toast.LENGTH_SHORT).show(); 
    } 
    else{ 
     message = "Login successful"; 
     Toast.makeText(getApplicationContext(),message,Toast.LENGTH_SHORT).show(); 
     Intent i = new Intent(getApplicationContext(),ProfileActivity.class); 
     Bundle b = new Bundle(); 
     b.putString("email",inEmail); 
     b.putString("password",inPassword); 
     i.putExtras(b); 
     startActivity(i); 
    } 
} 

我在做什麼在這裏被移動到ProfileActivity如果我按登錄按鈕和兩個文本字段填寫或如果按下注冊按鈕去RegisterActivity。 在Bundle對象中,我傳遞了其他視圖中需要的一些值。我需要我的ProfileActivity上的電子郵件和密碼,並使用Bundle對象來接收它們。在傳遞到Bundle對象後,我需要撥打putExtras()Bundle傳遞給Intent。 這是在不同活動中移動的非常簡單的例子。這可能對你有幫助。試着理解我的簡單代碼並將其重構爲您的需要。