out_going 2015-09-07 07:39 采纳率: 0%
浏览 1594

隐式Intent的问题,小白请教高手

这是按照书上仿写的一段代码,想要打开第二个Activity,但是,始终启动不了。
书上说,只要它的action,category等一致,就能找到匹配的activity,可是为什么还是打开不了。请大家帮忙看看。还有一个问题,action是不是可以自己随意设置,只要在manifest注册就行。谢谢。程序代码如下:

第一个Activity代码
package com.IWin.intent;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {

Button button;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button=(Button)findViewById(R.id.button);
    button.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            //显示Intent
            /*Intent intent=new Intent(MainActivity.this,SecondActivity.class);
            startActivity(intent); */
            //隐式Intent
            Intent intent=new Intent();
            intent.setAction(com.IWin.intent.SecondActivity.MARK);
            startActivity(intent);
        }

    });
}

}

package com.IWin.intent;

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

第二个Activity代码
public class SecondActivity extends Activity {

protected static final String MARK = null;
private TextView text;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    text=(TextView)findViewById(R.id.text);
}

}

manifest文件:
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:name=".MainActivity"
android:label="@string/app_name" >

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity 
        android:name="com.IWin.intent.SecondActivity">
        <intent-filter >
            <action  android:name="com.IWin.intent.SecondActivity.MARK" />
            <category android:name="android.intent.category.DAFAULT"/>

        </intent-filter>            
    </activity>

  • 写回答

3条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-09-07 08:11
    关注

    你那个是Action设置,要想启动一个Activity必须设置 intent.setClass,告诉intent启动那个Activity
    intent.setClass(this,SecondActivity.class)

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置