我想在android中绘制一个图表,并为此我使用一个图表(我导入到我的应用程序中的一个jar文件),我通过该值需要显示...从它的父母中删除图表
该图表存在的问题是它占用了设置的活动的全屏幕。与整个数据
protected void onProgressUpdate(String...values) {
setContentView(lv);
}
一遍又一遍:
public void onCreate(){
LineView lv;
lv=new LineView(this);
}
,我把图表上的值是从DB使用异步线程,这样somwewhere我这样做readed。
这里是我的问题:
我试图用我在其中有一个空白的线性布局和按钮(我想设置我的图表下方的按钮)的XML文件,我想通过我的图表LV作为一个孩子到线性布局,不占据了我的整个屏幕:
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/titlu"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="250px" >
/>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"
android:gravity="bottom"
android:id="@+id/stop"
/>
当我试图在的onCreate :
thatlinear=(LinearLayout)findViewById(R.id.titlu);
这:
thatlinear.addView(lv); in my function onProgresssUpdate()
我曾告诉我说我的表,LV,已经有母,为了将它传递给其他错误父母我必须删除最初的父母。
所以...我这样做:
ViewGroup v=(ViewGroup)(lv.getParent());
v.removeView(lv);
但细想一下,它没有工作这样......我在这行有一个FC-java的郎空指针异常:
v.removeView(lv);
而最后这个我想是这样的:
LinearLayout llay=new LinearLayout(this);
LinearLayout lytContainer = (LinearLayout) View.inflate(
this, R.layout.chart_speed, null);
lytContainer.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
llay.addView(lv);
chart_speed是我上面发布的xml ...
而且它没有这样工作....仍然FC。
问:
如何进行,以通过我的图表作为一个孩子到线性布局,所以它不会filll我的整个画面......我可以把按钮它下面???
编辑:
我已经做到了这一点:
setContentView(R.layout.chart_speed);
ViewGroup thatlayout=(ViewGroup)findViewById(R.id.titlu);
thatlayout.addView(lv);
chart_speed,是我整个XML titlu的名字是我的LinearLayout的@ + ID ...
而这正是我的logcat显示:
java.lang.NullPointerException
at com.kidroid.kichart.view.AxisView.GenerateValue(AxisView.java:112)
at com.kidroid.kichart.view.AxisView.drawAxisXY(AxisView.java:61)
at com.kidroid.kichart.view.LineView.onDraw(LineView.java:19)
at android.view.View.draw(View.java:6535)
at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
0 at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
at android.view.ViewGroup.drawChild(ViewGroup.java:1529)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258)
at android.view.View.draw(View.java:6538)
EDIT2:
我在我的ProgressUpdate这样做(){
// initializating组件
thatlayoyt.add(lv);
}
而对于一个几秒钟它会显示正确的,但在那之后,我得到FC:
java.lang.IllegalStateException:指定的孩子已经有一个父。您必须先调用子对象的父对象的removeView()。
at android.view.ViewGroup.addViewInner(ViewGroup.java:1861)
at android.view.ViewGroup.addView(ViewGroup.java:1756)
在android.view.ViewGroup.addView(ViewGroup.java:1713)
最终版本和它的作品...我不认为是非常正确的,但它的工作原理:
ViewGroup thatlayout;
公共无效的onCreate(捆绑savedInstanceState){
thatlayout =(的ViewGroup)findViewById(R.id.titlu);
}
保护无效onProgressUpdate(字符串值...){
// initalizating
try{
ViewGroup v=(ViewGroup)(lv.getParent());
v.removeView(lv);
}
catch(Exception e)
{
e.printStackTrace();
}
thatlayout.addView(lv);
}
sa vedem,sa vedem ..... lasa ma un minut sa incerc :) – adrian 2011-06-03 11:59:11
Mi-am editat intrebarea,ai putea sa te uiti?!! Ms :) – adrian 2011-06-03 12:20:58
它看起来像是有问题的习惯零件。在展示之前,你必须做一些初始化工作。请参阅[此链接](http://writerbay.net/?p=401)或[这一个](http://stackoverflow.com/questions/6221300/place-a-chart-in-a-view)。 – 2011-06-03 12:29:27