【发布时间】:2019-10-26 10:14:52
【问题描述】:
例外
java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.kraassismentdashbordfragment/com.example.kraassismentdashbordf
我在 android 中使用活动创建了一个饼图,但现在我尝试在 android 中使用片段创建 PiChart。
我的应用程序崩溃了。但尝试解决这个问题。我遇到了一个异常:class is not found an exception
1.fragment_kraassismentdsgarboard.xml
<?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:orientation="vertical"
android:weightSum="2"
tools:context=".KRAassismentdsgarboardFragmentClass">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/overal_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Overall Status"
android:textAlignment="center"
android:textSize="20dp"
android:textStyle="bold" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.example.kraassismentdashboard.PiChart
android:id="@+id/id_pichart"
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerInParent="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="#fff"
android:text=" 0.83%" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/self_assisment_status"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Self-Assisment-Status"
android:textAlignment="center"
android:textSize="20dp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
-
activity_main.xml
<fragment android:id="@+id/fragment" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_marginTop="10dp" android:name="com.example.kraassismentdashbordfragment.KRAassismentdsgarboardFragmentClass" tools:layout="@layout/fragment_kraassismentdsgarboard" /> MainActivity.Java
package com.example.kraassismentdashbordfragment;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
//Fragment fragment =null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
KRAassismentdsgarboardFragmentClass kraFragment = new KRAassismentdsgarboardFragmentClass();
loadFragment(kraFragment);
}
private void loadFragment(Fragment fragment){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment,fragment);
fragmentTransaction.commit();
}
}
-
KRAassismentdsgarboardFragmentClass
public class KRAassismentdsgarboardFragmentClass extends Fragment { View view; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment view=inflater.inflate(R.layout.fragment_kraassismentdsgarboard, container, false); int [] arr = {99,1}; int [ ] color = {Color.GREEN,Color.YELLOW}; PiChart piChart = view.findViewById(R.id.id_pichart); piChart.setData(arr,color); return view; } -
图表
public class PiChart extends View { private int[] mDataSet; private int[] mColorSet; private RectF mChart; private float mUnit; private float mStartAngle; private float mSweepAngle; private int mNotFillColor; public boolean isFill; private Paint paintArc; public PiChart(Context context) { super(context); init(context, null); } public PiChart(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(context, attrs); } private void init(Context context, @Nullable AttributeSet attributeSet){ paintArc = new Paint(Paint.ANTI_ALIAS_FLAG); mChart = new RectF(); mStartAngle = 0; isFill = true; mNotFillColor = Color.WHITE; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int H = getHeight(); int W = getWidth(); mChart.top = 0; mChart.left = 0; mChart.bottom = H; mChart.right = W; int totalData = mDataSet.length; for(int i = 0; i < totalData; i++){ mSweepAngle = mUnit * mDataSet[i]; paintArc.setColor(mColorSet[i]); canvas.drawArc(mChart, mStartAngle, mSweepAngle, true, paintArc); mStartAngle += mSweepAngle; } if(!isFill){ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(mNotFillColor); canvas.drawCircle(W / 2, H / 2, (int)((H / 2) - 70), paint); } } public void setData(int[] dataSet, int[] colorSet){ this.mDataSet = dataSet; this.mColorSet = colorSet; initUnit(dataSet); } public void setNotFillColor(int color){ mNotFillColor = color; } private void initUnit(int[] dataSet){ int t = 0; for(int i: dataSet) t+=i; mUnit = 360.0f / t; } }
我想得到一个 PiChart 的答案
【问题讨论】:
-
你能发布完整的错误信息吗?
-
是的,我添加了一张图片