android引用自定义View
来源:互联网 发布:lt3c防守优化版 编辑:程序博客网 时间:2024/04/27 16:10
1.fragment相当于一个组件,在主activity中引用fragment
如MainActivity的代码如下:
</pre><pre name="code" class="java"><span style="font-family:Times New Roman;font-size:14px;">package com.ahuiapp.myview;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.os.Build;public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);<span style="white-space:pre"></span>setContentView(R.layout.activity_main); //在activity中默认显示布局setContentView(R.layout.activity_main); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); //在activity中加入fragment,这部分基本是固定的写法 } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } }}</span>
<span style="font-family:Times New Roman;font-size:14px;">//上述是创建工程时自动生成的代码,使用的是新版的ADT,里面会自动创建activity_main.xml和Fragment_main.xml文件,并在MainActivity.java文件中调用。</span>
2.在activity中引用自定义的view(创建一个新的java文件,在java文件中实现绘图等功能代码)
有两种方法:
第一种:将自定义view嵌入到xml文件中,让java文件调用这个xml文件中就行了。
比如将自定义的view加入fragment中,此时的fragment.xml文件如下:
<span style="font-family:Times New Roman;font-size:14px;"> <RelativeLayout //将自定义的view包完整路径加入到fragment_main.xml的RelativeLayout标签中 <com.ahuiapp.myview.MyView android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout></span>
此时的MainActivity.java文件如下:
<span style="font-family:Times New Roman;font-size:14px;">//显示默认的布局文件是activity_main.xmlsetContentView(R.layout.activity_main); //添加的fragment到主activity if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } }</span>
第二种方法:将自定义view直接设置为默认的显示界面,将默认显示的布局文件注释掉
此时的activity_main.java代码如下:
<span style="font-family:Times New Roman;font-size:14px;"> protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main); MyView myview=new MyView(this,null); this.setContentView(myview); //默认显示自定义的view,不显示fragment // if (savedInstanceState == null) {// getSupportFragmentManager().beginTransaction()// .add(R.id.container, new PlaceholderFragment())// .commit(); }</span>
0 0
- android引用自定义View
- Android 自定义View引用xml布局
- android 自定义view,在xml中引用内部类View
- android 在xml文件中引用自定义View
- android 在xml文件中引用自定义View
- android 在xml文件中引用自定义View
- android 引用子工程自定义View的注意点
- Android中自定义View的研究 -- 在XML中引用自定义View
- Android View---自定义View
- Android View---自定义View
- 自定义View—自定义属性及引用
- Android 自定义View 之 自定义View属性
- 【自定义View系列】android自定义View概述
- Android自定义view自定义属性
- Android自定义控件 -- 自定义View
- android自定义view(自定义数字键盘)
- Android自定义View-自定义属性
- Android自定义View-自定义属性
- LCD控制器TM1621/HT1621
- Makefile的obj-y 和 obj-m
- 立即数的存储区
- 《数据结构》第五章 树和二叉树学习指南
- svn服务端客户端集成到eclipse中步骤
- android引用自定义View
- SVN客户端使用(图文详解)
- Java线程的使用
- 声波通信(声波传输)在iOS、Android中的应用场景深入分析(含部分声波通信源代码)
- 《超越Java》
- Android中WebView详解
- 进度!进度!进度
- CSS 实现打字效果
- 实现上下拉刷新MJRefresh