我是
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);