android如何为自定义的类传递参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android如何为自定义的类传递参数?相关的知识,希望对你有一定的参考价值。

小弟的工程中写了四个文件,一个是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);
///////具体任务代码待添加

由CourseActivity跳转到MainActivity?
通过intent.putExtras(xxx,yyy)来传递参数,在MainActivity里面通过getIntent().getExtras().get(xxx)来获取参数。你要给自定义类设置参数,只要在类里面添加一个属性,用来接收就好了。追问

错了 我的问题你没看清楚,是要把CourseActivity中的参数传递给自定义的两个类,在MainActivity中调用这两个类,这里要求不能直接把CourseActivity的参数直接传递给MainActivity

追答

你传递参数给自定义View是为了干什么?重新绘制?

参考技术A 可以用全局变量来解决。
1、自定义一个Application的派生类MyApplication,然后在Manifest中指定MyApplication为你的application name。
2、在MyApplication中定义你要传递数据类型对应的变量。然后增加一个成员函数,用于获得该变量的引用。
3、当然对MyApplication中对应变量的读写要做好同步。
---------------------------------------------------------------------
更多疑问解答,请关注@安卓互助平台 新浪微博
求采纳为满意回答。追问

我觉得你说的比较简略,意思我大概明白一点,能说详细些吗?最好能给出代码

本回答被提问者和网友采纳

以上是关于android如何为自定义的类传递参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建传递参数的自定义Facebook共享对话框?

带 plotly 的树状图 - 如何为层次聚类设置自定义链接方法

ORACLE中如何为存储过程传递参数?

C++:如何为多个参数传递一个变量? [复制]

如何为自定义类的参数指定类型提示? [复制]

如何为“IN 子句”传递可变参数