android如何为自定义的类传递参数?
小弟的工程中写了四个文件,一个是MainActivity,有两个是自定义的继承于RelativeLayout的类Player.java和WPSFile.java,还有一个...
小弟的工程中写了四个文件,一个是MainActivity,有两个是自定义的继承于RelativeLayout的类Player.java和WPSFile.java,还有一个是CourseActivity。MainActivity的布局文件是一个相对布局下包含两个字相对布局。现在要做的是从CourseActivity中传递一个参数mCourseId到Player.java和WPSFile.java中,在MainActivity中调用这两个类中的方法,并且作为组件分别填充在MainActivity的两个子相对布局中。现在遇到的问题是如何把CourseActivity中的mCourseId传递给这两个自定义的类,用Intent我不晓得怎么传,也不知道能不能用。这个是MainActivity类:
public class MyRelativeLayoutDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); // 要读取已经存在的布局管理器
initView();
}
private void initView()
{
PlayerLayout vlcplayer = new PlayerLayout(this);
WPSLayout wpsfileopen = new WPSLayout(this);
RelativeLayout r1 = (RelativeLayout) super.findViewById(R.id.mylayout); // 找到布局管理器
RelativeLayout r2 = (RelativeLayout) super.findViewById(R.id.relativeLayout2); // 找到布局管理器
RelativeLayout r3 = (RelativeLayout) super.findViewById(R.id.relativeLayout3); // 找到布局管理器
RelativeLayout.LayoutParams paramr1 = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT); // 定义参数
RelativeLayout.LayoutParams paramr2 = new RelativeLayout.LayoutParams(
windowsWidth/2,
ViewGroup.LayoutParams.FILL_PARENT); // 定义参数
RelativeLayout.LayoutParams paramr3 = new RelativeLayout.LayoutParams(
windowsWidth/2,
ViewGroup.LayoutParams.FILL_PARENT); // 定义参数
r2.setLayoutParams(paramr2);
r3.setLayoutParams(paramr3);
r2.addView(vlcplayer, paramr2); // 是向一个布局管理器之中增加组件,设定参数
r3.addView(wpsfileopen, paramr3);
}
}
PlayerLayout.java类:
public class PlayerLayout extends RelativeLayout {
public PlayerLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
VLCPlayer(String mCourseId);//自动执行此方法
}
public void VLCPlayer(String mCourseId){
Log.i("PlayerLayout", "************vlcplayer*************"+mCourseId);
///////具体任务代码待添加
}
}
WPSFileLayout.java类:
public class WPSFileLayoutextends RelativeLayout {
public WPSFileLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
WPSFile(String mCourseId);//自动执行此方法
}
public void WPSFile(String mCourseId){
Log.i("WPSFileLayout", "************wpsfile*************"+mCourseId);
///////具体任务代码待添加
}
} 展开
public class MyRelativeLayoutDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); // 要读取已经存在的布局管理器
initView();
}
private void initView()
{
PlayerLayout vlcplayer = new PlayerLayout(this);
WPSLayout wpsfileopen = new WPSLayout(this);
RelativeLayout r1 = (RelativeLayout) super.findViewById(R.id.mylayout); // 找到布局管理器
RelativeLayout r2 = (RelativeLayout) super.findViewById(R.id.relativeLayout2); // 找到布局管理器
RelativeLayout r3 = (RelativeLayout) super.findViewById(R.id.relativeLayout3); // 找到布局管理器
RelativeLayout.LayoutParams paramr1 = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT); // 定义参数
RelativeLayout.LayoutParams paramr2 = new RelativeLayout.LayoutParams(
windowsWidth/2,
ViewGroup.LayoutParams.FILL_PARENT); // 定义参数
RelativeLayout.LayoutParams paramr3 = new RelativeLayout.LayoutParams(
windowsWidth/2,
ViewGroup.LayoutParams.FILL_PARENT); // 定义参数
r2.setLayoutParams(paramr2);
r3.setLayoutParams(paramr3);
r2.addView(vlcplayer, paramr2); // 是向一个布局管理器之中增加组件,设定参数
r3.addView(wpsfileopen, paramr3);
}
}
PlayerLayout.java类:
public class PlayerLayout extends RelativeLayout {
public PlayerLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
VLCPlayer(String mCourseId);//自动执行此方法
}
public void VLCPlayer(String mCourseId){
Log.i("PlayerLayout", "************vlcplayer*************"+mCourseId);
///////具体任务代码待添加
}
}
WPSFileLayout.java类:
public class WPSFileLayoutextends RelativeLayout {
public WPSFileLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
WPSFile(String mCourseId);//自动执行此方法
}
public void WPSFile(String mCourseId){
Log.i("WPSFileLayout", "************wpsfile*************"+mCourseId);
///////具体任务代码待添加
}
} 展开
2个回答
2014-09-22
展开全部
由CourseActivity跳转到MainActivity?
通过intent.putExtras(xxx,yyy)来传递参数,在MainActivity里面通过getIntent().getExtras().get(xxx)来获取参数。你要给自定义类设置参数,只要在类里面添加一个属性,用来接收就好了。
通过intent.putExtras(xxx,yyy)来传递参数,在MainActivity里面通过getIntent().getExtras().get(xxx)来获取参数。你要给自定义类设置参数,只要在类里面添加一个属性,用来接收就好了。
追问
错了 我的问题你没看清楚,是要把CourseActivity中的参数传递给自定义的两个类,在MainActivity中调用这两个类,这里要求不能直接把CourseActivity的参数直接传递给MainActivity
追答
你传递参数给自定义View是为了干什么?重新绘制?
展开全部
可以用全局变量来解决。
1、自定义一个Application的派生类MyApplication,然后在Manifest中指定MyApplication为你的application name。
2、在MyApplication中定义你要传递数据类型对应的变量。然后增加一个成员函数,用于获得该变量的引用。
3、当然对MyApplication中对应变量的读写要做好同步。
---------------------------------------------------------------------
更多疑问解答,请关注@安卓互助平台 新浪微博
求采纳为满意回答。
1、自定义一个Application的派生类MyApplication,然后在Manifest中指定MyApplication为你的application name。
2、在MyApplication中定义你要传递数据类型对应的变量。然后增加一个成员函数,用于获得该变量的引用。
3、当然对MyApplication中对应变量的读写要做好同步。
---------------------------------------------------------------------
更多疑问解答,请关注@安卓互助平台 新浪微博
求采纳为满意回答。
追问
我觉得你说的比较简略,意思我大概明白一点,能说详细些吗?最好能给出代码
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询