2017-06-15 85 views
0

你好我是編程代碼的新手,我正在創建一個android應用程序。我試圖創建一個打開按鈕後打開新活動的意圖。點擊按鈕後打開一個新的活動

這是我的主要活動的XML,只是按鈕:

<Button 
     android:id="@+id/logIn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Log In" 
     android:textColor="#FFFFFF" 
     android:onClick="openLogIn" 
     android:textSize="16sp" /> 

,這裏是我的mainActivity的Java:

package com.example.android; 


import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 

import com.example.android.linexpress.DisplayLogInActivity; 
import com.example.android.linexpress.R; 

/** 
* Created by EnriqueAlcacer on 15/06/2017. 
*/ 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 


/** Called when the user clicks the Send button */ 
public void opeLogIn (View view) { 
    // Do something in response to button 
    Intent i = new Intent(this, DisplayLogInActivity.class); 
    startActivity(i); 

} 
} 

非常感謝您的幫助!

+1

除了'openLogIn'之外,你的代碼似乎很好。你寫錯了名字'opelogIn' – Vyacheslav

回答

0

添加DisplayLogInActivity即使你在android編程中是新的,我不會鼓勵你使用XML中的onClick。

您應該使用findViewById函數獲得按鈕的引用,然後您應該在其上設置偵聽器。

它看起來像

Button btnLogIn = (Button) findViewById(R.id.logIn); 
btnLogIn.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) 
    { 
     Intent intent = new Intent(Mainactivity.this, DisplayLogInActivity.class); 
     startActivity(intent); 
    } 
}); 

如果你不打算傳遞數據,你可以使用縮寫形式:

startActivity(new Intent(MainActivity.this, DisplayLogInActivity.class);); 
+0

這不是他的問題的答案 – Vyacheslav

+0

對不起,我不能評論,因爲我沒有足夠的聲望:( 我只是想幫忙很少有建議。 – barotia

+0

非常感謝你我修好了 –

2

此:

android:onClick="openLogIn" 

應與在活動的函數名..所以將其更改爲:

public void openLogIn (View view) { 
    // Do something in response to button 
    Intent i = new Intent(this, DisplayLogInActivity.class); 
    startActivity(i); 

} 

確保在清單還

+0

謝謝你的幫助,我修復了 –

0

你只是有一個錯字錯。 使Java和XML onClick方法同名openLogIn

+0

非常感謝我的修復 –

0

在setOclicklistener中添加intent到下一個活動,並把你想傳遞的數據傳遞給putextra函數。

+0

謝謝你的幫助我修好了 –

0

這種方法有這樣的限制:爲API級別> = 4

0

實施View.OnClickListener

@Override 
    public void onClick(View view) { 
     int id=view.getId(); 
     switch(id){ 
      case: R.id.logIn 
       Intent i = new Intent(MainAvtivity.this,DisplayLogInActivity.class); 
       startActivity(i); 
     } 
    } 

內部的OnCreate設置聽者像

Button logIn = (Button)findViewById(R.id.LogIn); 
logIn.setOnClickListener(this); 

那它。