Android:XML布局中的自定义视图

S1J0

我正在尝试在布局中添加ListView和Custom View,但是我总是会收到此错误:

“ ...错误夸大了类com.example ...”

没有自定义视图,它将起作用,并且仅显示ListView。


活动:

package com.example.training;

public class PracticeActivity extends ActionBarActivity{
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.practice_layout);
      initListView();  //private function
   }
   //Other stuff
}

自定义视图:

package com.example.training;

public class LinearChart extends View{

  LinearChart(Context context, AttributeSet attrs){
      super(context,attrs);
  }

  LinearChart(Context context){
      super(context);
  }

  LinearChart(Context context, AttributeSet attrs, int defStyle){
      super(context,attrs, defStyle);
  }

  @Override
  protected void onDraw(Canvas canvas) {
      super.onDraw(canvas);
      canvas.drawColor(Color.WHITE);
      Paint paint = new Paint();
      paint.setColor(Color.BLUE);
      paint.setStrokeWidth(10);
      canvas.drawLine(10, 10, 30, 30, paint); 
  }
}

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" >

    <ListView
        android:id="@+id/practice_listview"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:layout_centerHorizontal="true" >
    </ListView>

    <view
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/practice_listview"
        class="com.example.training.LinearChart" />

</RelativeLayout>
佩德罗·奥利维拉(Pedro Oliveira)

您的课程上没有公共的构造函数。确保覆盖构造函数。它应该看起来像这样:

  public LinearChart(Context context, AttributeSet attrs){
      super(context,attrs);
  }

  public LinearChart(Context context){
      super(context);
  }

  public LinearChart(Context context, AttributeSet attrs, int defStyle){
      super(context,attrs, defStyle);
  }

注意public修饰符的上瘾

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章