Android:无法使用Intents启动新活动

时间:2011-11-07 23:16:56

标签: android android-intent

我正在尝试按下按钮时启动一个新活动,但没有任何反应,我没有错误。这是我的代码:

主要活动

public class CSLearn_Python_AppActivity extends Activity {


String tag = "Events";

/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {


    //get content from main.xml
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);



    Button login = (Button) findViewById(R.id.loginBtn);
    login.setOnClickListener(new OnClickListener(){
        public void onClick(View v){



//              Intent intent = new Intent("com.Main.Verification");   
//              startActivity(intent);

            Intent myIntent = new Intent(getBaseContext(), Verification.class);
            startActivity(myIntent);

        }
    });



 }

新活动

    import android.app.Activity;
import android.os.Bundle;

public class Verification extends Activity{

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.verification);

}

}

验证XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_width="match_parent" android:baselineAligned="true" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" android:orientation="vertical">
    <TextView android:text="@string/Verification" android:id="@+id/Verrification" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    <EditText android:layout_height="wrap_content" android:id="@+id/password" android:inputType="textPassword" android:layout_width="112dp">
        <requestFocus></requestFocus>
    </EditText>
    <Button android:text="@string/LoginBtn" android:id="@+id/loginBtn" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>

我将此添加到了android宣言

<activity android:name=".Verification"
              android:label="Verification">
        <intent-filter>
            <action android:name="com.Main.VERIFICATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

如果有人能指出我正确的方向,那将非常感激。

8 个答案:

答案 0 :(得分:5)

尝试以下代码并在AndroidManifest.xml文件中注册您的活动:

Intent myIntent = new Intent(CSLearn_Python_AppActivity.this, Verification.class);
startActivity(myIntent);

答案 1 :(得分:1)

CSLearn_Python_AppActivity与Verification在同一个包中。

可能你可以尝试使用:

<activity android:name="yourpackage.Verification"
                  android:label="@string/verification" >
        </activity>

答案 2 :(得分:0)

验证活动中的intent-filter不是必需的。

答案 3 :(得分:0)

我认为问题在于getBaseContext()。改为使用getApplicationContext()(活动的上下文也是一个选项,但会导致泄漏)。我还没能完全绕过基本上下文,但似乎是某种代理在其原始实现中做了或多或少的事情。

here给出了对不同情境的更多解释。

答案 4 :(得分:0)

我会尝试改变它:

    Button login = (Button) findViewById(R.id.loginBtn);
    login.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        Intent myIntent = new Intent(v.getContext(), Verification.class);
        startActivity(myIntent);

    }
    });

答案 5 :(得分:0)

尝试从清单中删除意图过滤器及其间的所有内容

你有进口的全部吗?     import android.app.Activity;     import android.content.Intent;     import android.os.Bundle;     import android.view.View;     import android.widget.Button;

答案 6 :(得分:0)

Intent myIntent = new Intent(CSLearn_Python_AppActivity.this, Verification.class);
startActivity(myIntent);

In your Android manifest file, 

<activity android:name=".Verification" android:label="Verification"></activity>

答案 7 :(得分:0)

您在清单文件中包含其他活动:

not found
1
1
1

not found
1
1
1