我正在尝试按下按钮时启动一个新活动,但没有任何反应,我没有错误。这是我的代码:
主要活动
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>
如果有人能指出我正确的方向,那将非常感激。
答案 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