我是
Android世界的新手……如果有人纠正我,那将是一个很好的帮助…我在做错了以下代码…
>要求:需要创建自定义视图(使用xml布局文件),以便在我的应用程序活动中使用相同的视图.在这里,我使用我正在处理的示例代码,
cutomviewxml.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/textView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Large Text"
- android:textAppearance="?android:attr/textAppearanceLarge" />
- </LinearLayout>
扩展视图类…代码……
mycustomTextview.java
- public class mycustomTextview extends View {
- private View mView;
- Context mycontext;
- public mycustomTextview(Context context,AttributeSet attrs) {
- super(context,attrs);
- // TODO Auto-generated constructor stub
- this.mycontext = context;
- LayoutInflater inflater;
- inflater = (LayoutInflater) context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- mView = inflater.inflate(R.layout.cutomviewxml,null);
- }
Activity main.xml文件
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <com.motorola.mycustomTextview
- android:id="@+id/customtextview"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/textView2"
- android:layout_marginLeft="143dp"
- android:layout_marginTop="69dp"
- android:layout_toRightOf="@+id/textView1" />
- </RelativeLayout>
Activity类sample.java ..
- public class sample extends Activity{
- private static final String LOG_TAG = "sampleActivity";
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Log.i(LOG_TAG,"OnCreate of sampleActivity");
- setContentView(R.layout.main);
- }
- }
解决方法
我认为你在mycustomTextview中犯了一个小错误,当你夸大你的布局你也必须通过ViewGroup时,你可以使用这一行
- mView = inflater.inflate(R.layout.cutomviewxml,this);