Android没有启动其他活动

时间:2014-01-31 13:49:31

标签: java android

我对Android编程很陌生,但我之前从未遇到过这个问题。当我点击按钮时,模拟器只是没有做任何事情,当它应该开始另一个活动时。这是我在按钮内的意图:

public class StartScreen extends Activity implements OnClickListener {

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start_screen);
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()){
    case R.id.bStartQuiz:
            Intent a = new Intent(StartScreen.this, QuizMenu.class);
            startActivity(a);   
        break;

下面是一些尚未定义的案例。 我尝试从类开始的onCreate方法:

public class QuizMenu extends Activity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.categories);

这是清单:

<activity
        android:name="com.ultimatequiz.StartScreen"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.ultimatequiz.QuizMenu"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="com.ultimatequiz.QuizMenu" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

我真正不明白的是我在日志中没有错误。它只是没有“响应”,但按钮确实变为state_pressed。

3 个答案:

答案 0 :(得分:1)

我不知道你的案子是否运作良好。试试这个。

public class StartScreen extends Activity {

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_start_screen);

            Button myBtn = (Button) findViewById(R.id.btn);
            myBtn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent a = new Intent(StartScreen.this, QuizMenu.class);
                    startActivity(a);

                }
            });
        }

}

我总是这样使用,我发现它很容易处理。

如果您已将定义的布局定义为onlick

答案 1 :(得分:1)

如果我理解正确,您可以点击Button打开新活动。然后,您只需在Button中添加activity_start_screen.xml

<Button
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/your_button"/>

之后,您必须在StartScreen

中添加此内容
public class StartScreen extends Activity {
      @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start_screen);

    Button button = (Button) findViewById(R.id.your_button);
    button.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            Intent activityChangeIntent = new Intent(StartScreen.this,QuizMenu.class);
            StartScreen.this.startActivity(activityChangeIntent);

        }
    });

仅在您的manifest

<activity
    android:name="com.ultimatequiz.StartScreen"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name="com.ultimatequiz.QuizMenu"
    android:label="@string/app_name"/>

答案 2 :(得分:0)

尝试为它做一个功能:

public static void LaunchIntent(){
        Intent a = new Intent(StartScreen.this, QuizMenu.class);
        startActivity(a);   

并在click监听器中调用函数:

public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.bStartQuiz:
        LaunchIntent();
    break;
}