eclipse新建package,无法setContentView(R.layout)

阿不阿 2014-01-15 02:38:37
我下了一个应用的源码,在一个packageA里面。
我现在建立另一个packageB,想通过packgaeA里面的activity触发packageB里面的activity。
但是在eclipse里面新建packageB后,import android.R,却无法setContentView(R.layout.B);
报错:B cannot be resolved or is not a filed。
同时,import android.R 有提示:Don't include android.R here;use a fully qualified name for each usage instead
android新手,敢问大神如何解决,谢谢!!!
...全文
990 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SayHehe酱 2014-01-15
  • 打赏
  • 举报
回复
引用 11 楼 eclothy 的回复:
另外再请问一下,我看文档上面说的,同一个project的R.java,只要增加了资源,R.java就会自动增加,这个是否是对该project中所有package都适用呢? 也就是说,我在新建的packageB的activity中,是不可以直接引用packageA的R.java:import packageA.R ?
引用 9 楼 zbasd 的回复:
[quote=引用 8 楼 eclothy 的回复:]

package cn.weanswer.packageB;
import android.R;
import android.os.Bundle;
import android.content.*;
import android.app.Activity;

public class Listfile extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.B);    // 无法引用
    }
}
就是这样子的,但是引用anroid.R就出错了。。 [quote=引用 7 楼 qq237121087 的回复:] 继承Activity 实现OnCreate方法 在给B 一个布局文件不就好啦
你导错R包了,按照自己编译好的R导,你导了android的R,不是你的 import android.R;这里应该是你的xxx.xxx.xxx.R[/quote][/quote] R一个project只会生成一个,你看下工程目录gen中R.JAVA但是别编辑,看看内容就好,还有你要是引用了其他工程的话,就会有两个R,导对就好了
阿不阿 2014-01-15
  • 打赏
  • 举报
回复
另外再请问一下,我看文档上面说的,同一个project的R.java,只要增加了资源,R.java就会自动增加,这个是否是对该project中所有package都适用呢? 也就是说,我在新建的packageB的activity中,是不可以直接引用packageA的R.java:import packageA.R ?
引用 9 楼 zbasd 的回复:
引用 8 楼 eclothy 的回复:

package cn.weanswer.packageB;
import android.R;
import android.os.Bundle;
import android.content.*;
import android.app.Activity;

public class Listfile extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.B);    // 无法引用
    }
}
就是这样子的,但是引用anroid.R就出错了。。 [quote=引用 7 楼 qq237121087 的回复:] 继承Activity 实现OnCreate方法 在给B 一个布局文件不就好啦
你导错R包了,按照自己编译好的R导,你导了android的R,不是你的 import android.R;这里应该是你的xxx.xxx.xxx.R[/quote]
阿不阿 2014-01-15
  • 打赏
  • 举报
回复
恩,确实是这样的,刚才看了其他源码的引用,不应该是import android.R,应该是import packageB.R 非常感谢!!!!
引用 9 楼 zbasd 的回复:
引用 8 楼 eclothy 的回复:

package cn.weanswer.packageB;
import android.R;
import android.os.Bundle;
import android.content.*;
import android.app.Activity;

public class Listfile extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.B);    // 无法引用
    }
}
就是这样子的,但是引用anroid.R就出错了。。 [quote=引用 7 楼 qq237121087 的回复:] 继承Activity 实现OnCreate方法 在给B 一个布局文件不就好啦
你导错R包了,按照自己编译好的R导,你导了android的R,不是你的 import android.R;这里应该是你的xxx.xxx.xxx.R[/quote]
SayHehe酱 2014-01-15
  • 打赏
  • 举报
回复
引用 8 楼 eclothy 的回复:

package cn.weanswer.packageB;
import android.R;
import android.os.Bundle;
import android.content.*;
import android.app.Activity;

public class Listfile extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.B);    // 无法引用
    }
}
就是这样子的,但是引用anroid.R就出错了。。
引用 7 楼 qq237121087 的回复:
继承Activity 实现OnCreate方法 在给B 一个布局文件不就好啦
你导错R包了,按照自己编译好的R导,你导了android的R,不是你的 import android.R;这里应该是你的xxx.xxx.xxx.R
阿不阿 2014-01-15
  • 打赏
  • 举报
回复

package cn.weanswer.packageB;
import android.R;
import android.os.Bundle;
import android.content.*;
import android.app.Activity;

public class Listfile extends Activity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.B);    // 无法引用
    }
}
就是这样子的,但是引用anroid.R就出错了。。
引用 7 楼 qq237121087 的回复:
继承Activity 实现OnCreate方法 在给B 一个布局文件不就好啦
黑马跨境圈 2014-01-15
  • 打赏
  • 举报
回复
继承Activity 实现OnCreate方法 在给B 一个布局文件不就好啦
阿不阿 2014-01-15
  • 打赏
  • 举报
回复
packageA和packageB是两个完全独立的功能模块。 packageA跳转packageB的时候,才用Intent传递参数。 现在是packageA独立功能完成,准备单独做packageB的功能,业务上,packageB即使没有被Intent,也是可以显示布局界面的。
引用 3 楼 qq237121087 的回复:
setContentView(R.layout.B); 这个是设置布局文件的 XML的, 当然不可以。 你想跳Activity的话 要用Ienten 然后还要在清单文件中注册一下
黑马跨境圈 2014-01-15
  • 打赏
  • 举报
回复
Ienten i = new Ienten(this,"写你要跳Activity的类名"); startActivity(i);
SayHehe酱 2014-01-15
  • 打赏
  • 举报
回复
我仔细看下你的描述,你导包应该错了,不是android.R这个是系统的,你要导入你的包名.R,这个你编译下就有了
黑马跨境圈 2014-01-15
  • 打赏
  • 举报
回复
setContentView(R.layout.B); 这个是设置布局文件的 XML的, 当然不可以。 你想跳Activity的话 要用Ienten 然后还要在清单文件中注册一下
阿不阿 2014-01-15
  • 打赏
  • 举报
回复
是一个project,也只有一个R.java,所以就搞不懂了。。
引用 1 楼 zbasd 的回复:
楼主是建了两个project还是在一个工程里建了两个包 两个工程的话,你查查工程引用工程的方法就好了
SayHehe酱 2014-01-15
  • 打赏
  • 举报
回复
楼主是建了两个project还是在一个工程里建了两个包 两个工程的话,你查查工程引用工程的方法就好了

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧