Legend on RadCartesianChartView

2 posts, 0 answers
  1. Paul
    Paul avatar
    6 posts
    Member since:
    Jul 2012

    Posted 03 Feb Link to this post

    Following getting started docs on Chart for Android UI.

    Attached is activity and layout file with gradle file.  Refer to line 51.  When adding this line and running app, it crashes with :

     ------------

    FATAL EXCEPTION: main
                                                                          Process: kgi.co.za.telerikgraph, PID: 5904
                                                                          java.lang.NoSuchFieldError: No static field legend_stroke_width of type I in class Lcom/telerik/widget/chart/R$dimen; or its superclasses (declaration of 'com.telerik.widget.chart.R$dimen' appears in /data/app/kgi.co.za.telerikgraph-1/base.apk)
                                                                              at com.telerik.widget.primitives.legend.RadLegendItemView.setLegendItem(RadLegendItemView.java:71)
                                                                              at com.telerik.widget.primitives.legend.LegendItemListAdapter.getView(LegendItemListAdapter.java:47)
                                                                              at android.widget.AbsListView.obtainView(AbsListView.java:2347)
                                                                              at android.widget.ListView.measureHeightOfChildren(ListView.java:1270)
                                                                              at android.widget.ListView.onMeasure(ListView.java:1182)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
                                                                              at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
                                                                              at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
                                                                              at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1083)
                                                                              at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
                                                                              at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1083)
                                                                              at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
                                                                              at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:391)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
                                                                              at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
                                                                              at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5535)
                                                                              at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
                                                                              at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2615)
                                                                              at android.view.View.measure(View.java:17547)
                                                                              at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2015)
                                                                              at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1173)
                                                                              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1379)
                                                                              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
                                                                              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
                                                                              at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
                                                                              at android.view.Choreographer.doCallbacks(Choreographer.java:580)
                                                                              at android.view.Choreographer.doFrame(Choreographer.java:550)
                                                                              at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
                                                                              at android.os.Handler.handleCallback(Handler.java:739)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                              at android.os.Looper.loop(Looper.java:135)
                                                                          at android.app.ActivityThread.ma

    -------------

     

    What am I doing wrong?  Must be something very obvious.  PS using 2016.1.113-dev-release lib files.

     

    ---------

    package kgi.co.za.telerikgraph;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.ViewGroup;
    import android.widget.LinearLayout;

    import com.telerik.widget.chart.engine.databinding.PropertyNameDataPointBinding;
    import com.telerik.widget.chart.visualization.cartesianChart.RadCartesianChartView;
    import com.telerik.widget.chart.visualization.cartesianChart.axes.CategoricalAxis;
    import com.telerik.widget.chart.visualization.cartesianChart.axes.LinearAxis;
    import com.telerik.widget.chart.visualization.cartesianChart.series.categorical.LineSeries;
    import com.telerik.widget.primitives.legend.RadLegendView;

    import java.util.ArrayList;
    import java.util.List;

    import kgi.co.za.telerikgraph.models.MonthResult;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    RadCartesianChartView chartView = new RadCartesianChartView(this);
    initData();
    LineSeries lineSeries = new LineSeries();
    lineSeries.setLegendTitle("Line 1 Title");
    lineSeries.setCategoryBinding(new PropertyNameDataPointBinding("Month"));
    lineSeries.setValueBinding(new PropertyNameDataPointBinding("Result"));
    lineSeries.setData(this.monthResults);
    chartView.getSeries().add(lineSeries);

    CategoricalAxis horizontalAxis = new CategoricalAxis();
    chartView.setHorizontalAxis(horizontalAxis);

    LinearAxis verticalAxis = new LinearAxis();
    chartView.setVerticalAxis(verticalAxis);

    RadLegendView legendView = new RadLegendView(this);
    legendView.setLegendProvider(chartView);

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(460,100);
    params.setMargins(10,10,10,10);
    legendView.setLayoutParams(params);

    LinearLayout linearLayout = new LinearLayout(this);
    linearLayout.setOrientation(LinearLayout.VERTICAL);

    linearLayout.addView(legendView);
    linearLayout.addView(chartView);

    ViewGroup rootView = (ViewGroup)findViewById(R.id.container);
    rootView.addView(linearLayout);
    }


    private List<MonthResult> monthResults;

    private void initData() {
    monthResults = new ArrayList<MonthResult>();
    monthResults.add(new MonthResult("Jan", 12));
    monthResults.add(new MonthResult("Feb", 5));
    monthResults.add(new MonthResult("Mar", 10));
    monthResults.add(new MonthResult("Apr", 7));
    }

    }

    -------------

    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
    applicationId "kgi.co.za.telerikgraph"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    }
    buildTypes {
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    }

    buildscript {
    repositories {
    mavenCentral()
    }
    }

    repositories {
    mavenCentral()
    flatDir {
    dirs 'libs'
    }
    }
    }

    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile(name: 'Common-2016.1.113-dev-release', ext: 'aar');
    compile(name: 'Data-2016.1.113-dev-release', ext: 'aar');
    compile(name: 'List-2016.1.113-dev-release', ext: 'aar');
    compile(name: 'Chart-2016.1.113-dev-release', ext: 'aar');
    }

     

    ---------------

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/container"
    android:orientation="horizontal">

    </LinearLayout>
    </LinearLayout>

     

     

    -------------------------

  2. Todor
    Admin
    Todor avatar
    778 posts

    Posted 03 Feb Link to this post

    Hi Paul,

    Thank you for your question.

    Please make sure that you have added the required references (Common, Primitives, Chart) as shown in our online documentation.

    Let us know if the issue persists.

    Regards,
    Todor
    Telerik
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
  3. DevCraft banner
Back to Top