This is a migrated thread and some comments may be shown as answers.

Legend on RadCartesianChartView

1 Answer 75 Views
Chart
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Paul
Top achievements
Rank 1
Paul asked on 03 Feb 2016, 01:04 PM

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>

 

 

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

1 Answer, 1 is accepted

Sort by
0
Todor
Telerik team
answered on 03 Feb 2016, 04:26 PM
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
Tags
Chart
Asked by
Paul
Top achievements
Rank 1
Answers by
Todor
Telerik team
Share this question
or