Intent使用Component
来源:互联网 发布:淘宝网 情侣装 编辑:程序博客网 时间:2024/05/18 14:45
Intent是在作为Activity之间传递数据的组件,通过intent将数据封装起来,传递到你需要传递的activity中,再在目标Activity中获取到,进行使用
之前没有用过component,一直使用的最简洁的方式来的
- button.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- Intent intent = new Intent();
- String s = "This is a Test.";
- intent.putExtra("id", s);
- intent.setClass(MainActivity.this, MyActivity.class);
- startActivity(intent);
- }
- });
在目标Activity中获取 传递过去的数据:
[java] view plaincopy
- TextView text = (TextView)findViewById(R.id.text);
- Intent intent = getIntent();
- String str = intent.getStringExtra("id");
- text.setText(str);
现在使用components来做这件事
有两种方式:
- ComponentName com = new ComponentName(MainActivity.this,MyActivity.class);//first
- ComponentName com = new ComponentName("com.example.testcomponent","com.example.testcomponent.MyActivity");//second
第二种方式的第二个参数必须写全包名,不然会报错的
一样的,主Activity中:
- button.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- Intent intent = new Intent();
- ComponentName com = new ComponentName(
- "com.example.testcomponent",
- "com.example.testcomponent.MyActivity");
- intent.setComponent(com);
- String s = "This is a Test.";
- intent.putExtra("id", s);
- startActivity(intent);
- }
- });
在目标Ativity中获取数据和上面是一样的,但是,在目标Activity中就可以获取到源目标,知道是从哪儿传递过来的:
- text = (TextView)findViewById(R.id.text);
- Intent intent = getIntent();
- String str = intent.getStringExtra("id");
- ComponentName com = intent.getComponent();
- String pkgName = com.getPackageName();
- String className = com.getClassName();
- text.setText(str + "\n" + pkgName + "\n" + className);
那项目中用到的component,是在显示出九宫格之后,通过click监听事件,获取用户的点击事件,然后通过component调用九宫格中对应的bpm,dfu,hrs等程序,具体代码在AppAdapter.java中红色字体部分:
- public View getView(int position, View convertView, ViewGroup parent) {
- //当convertView不为空的时候直接重新使用convertView从而减少了很多不必要的View的创建,然后加载数据。增强性能,减少view创建的时间
- View view = convertView;
- if (view == null) {
- //载入xml的layout
- view = mInflater.inflate(R.layout.feature_icon, parent, false);
- final ViewHolder holder = new ViewHolder();
- holder.view = view;
- holder.icon = (ImageView) view.findViewById(R.id.icon);
- holder.label = (TextView) view.findViewById(R.id.label);
- view.setTag(holder);
- }
- final ResolveInfo info = mApplications.get(position);
- final PackageManager pm = mPackageManager;
- final ViewHolder holder = (ViewHolder) view.getTag();
- holder.icon.setImageDrawable(info.loadIcon(pm));
- holder.label.setText(info.loadLabel(pm).toString().toUpperCase(Locale.US));
- holder.view.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- final Intent intent = new Intent();
- <span style="color:#ff0000;"> //在该应用程序中启动另外一个应用程序
- intent.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name));
- intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
- mContext.startActivity(intent);</span>
- }
- });
- return view;
- }
0 0
- Intent中Component使用
- Intent使用Component
- Intent中Component使用
- Intent中Component使用
- Android项目之HomeHealth基础学习3:Intent使用Component
- Intent之Component
- Intent的属性-Component属性
- Intent属性component,action,category
- Android intent属性之component
- Intent属性详解一 component属性
- Intent(显示使用intent)
- intent 使用
- Intent 使用
- Intent 使用
- Intent使用
- Swing component使用方式
- hibernate的Component使用
- 组件使用component
- 数据结构心得
- MSSQL 获取汉字的首拼音 MYSQL 获取汉字的首拼音
- C++虚析构函数、纯虚析构函数
- Jmeter自动化测试
- 普里姆算法求最小生成树
- Intent使用Component
- Oracle 内联视图优化,视图合并的抉择
- Java线程(三)-线程栈模型与线程的变量
- 构造函数为什么不能是虚函数
- MATLAB图像处理_学习笔记
- Hibernate学习笔记
- java中的匿名内部类总结
- 求子数组的最大和
- 让EditText不能自动获取焦点