当我在mainactivity上的editview中输入所有信息,然后单击“计算”时,将出现一个对话框,其中包含我设置的内容。然后应该移动到另一个名为“barchartactivity”的屏幕,在那里应该创建一个条形图。当它移动到条形图活动时,应用程序就退出了。代码如下:
主活动.java
public class MainActivity extends AppCompatActivity {
Button button;
EditText totalstudents, astudents, bstudents, cstudents, dstudents, fstudents;
float totalnum, apercent, bpercent, cpercent, dpercent, fpercent, afinal, bfinal, cfinal, dfinal, ffinal;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
totalstudents = findViewById(R.id.total);
astudents = findViewById(R.id.a);
bstudents = findViewById(R.id.b);
cstudents = findViewById(R.id.c);
dstudents = findViewById(R.id.d);
fstudents = findViewById(R.id.f);
button = findViewById(R.id.compute);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkValues();
}
});
}
public void checkValues(){
if (totalstudents.getText().toString().equals("") | astudents.getText().toString().equals("") | bstudents.getText().toString().equals("") | cstudents.getText().toString().equals("") | dstudents.getText().toString().equals("") | fstudents.getText().toString().equals("")) {
Toast.makeText(this, "Missing Information.", Toast.LENGTH_SHORT).show();
} else {
apercent = Float.parseFloat(astudents.getText().toString());
bpercent = Float.parseFloat(bstudents.getText().toString());
cpercent = Float.parseFloat(cstudents.getText().toString());
dpercent = Float.parseFloat(dstudents.getText().toString());
fpercent = Float.parseFloat(fstudents.getText().toString());
totalnum = Float.parseFloat(totalstudents.getText().toString());
afinal = apercent / totalnum * 100;
bfinal = bpercent / totalnum * 100;
cfinal = cpercent / totalnum * 100;
dfinal = dpercent / totalnum * 100;
ffinal = fpercent / totalnum * 100;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("A Students " + afinal + "% \n" + "B Students " + bfinal + "% \n" + "C Students " + cfinal + "% \n" + "D Students " + dfinal + "% \n" + "F Students " + ffinal + "%");
//Chart
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent showHome = new Intent(MainActivity.this, BarChartActivity.class);
MainActivity.this.startActivity(showHome);
}
});
builder.setCancelable(false);
builder.show();
}
}
}
barchartactivity.java,
public class BarChartActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bar);
drawChart();
}
private void drawChart() {
BarChart barChart;
barChart = findViewById(R.id.barChart);
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(38f, 0));
entries.add(new BarEntry(52f, 1));
entries.add(new BarEntry(65f, 2));
entries.add(new BarEntry(30f, 3));
entries.add(new BarEntry(85f, 4));
entries.add(new BarEntry(19f, 5));
entries.add(new BarEntry(75f, 6));
BarDataSet bardataset = new BarDataSet(entries, " ");
ArrayList<String> labels = new ArrayList<String>();
labels.add("A");
labels.add("B");
labels.add("C");
labels.add("D");
labels.add("F");
BarData data = new BarData((IBarDataSet) labels, bardataset);
barChart.setData(data);
bardataset.setColors(ColorTemplate.COLORFUL_COLORS);
barChart.animateY(5000);
}
}
暂无答案!
目前还没有任何答案,快来回答吧!