gpt4 book ai didi

java - 安卓 : Adding close button into achartengine chart layout

转载 作者:行者123 更新时间:2023-11-29 05:33:17 25 4
gpt4 key购买 nike

在我的 android 应用程序中,单击按钮时会创建一个饼图。这是我点击按钮的代码段。

btnpieChart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SelectDBAdapter selectDBAdapter = SelectDBAdapter
.getDBAdapterInstance(getActivity());
try {
selectDBAdapter.openDataBase();
chartDataMap = selectDBAdapter.getPieChartData(strBusinessUnit,
currentPeriod, currentYear);
} catch (Exception e) {
selectDBAdapter.close();
e.printStackTrace();
} finally {
selectDBAdapter.close();
}
if (chartDataMap.size() > 0) {
Intent chrtIntent = new Intent(getActivity(),
PieChart.class);
chrtIntent.putExtra("chartMap", chartDataMap);
startActivity(chrtIntent);
} else {
Toast.makeText(getActivity(), "No Achievement Progress", Toast.LENGTH_SHORT).show();
}

}
});

这是我的 PieChart.java 类。

package xont.virtusel.v4.controller;

//imports

public class PieChart extends Activity {
private ArrayList<String> lstBrandNames = new ArrayList<String>();
private ArrayList<Double> lstAchievedVals = new ArrayList<Double>();
private GraphicalView mChartView = null;

protected void onResume() {
super.onResume();
}

public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}

public void onBackPressed() {
return;
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish();

return true;
}
return false;

}

public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.complains, menu);
return true;
}

public boolean onOptionsItemSelected(android.view.MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_cancel:
this.finish();
return true;

default:
return super.onOptionsItemSelected(item);
}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.pie_chart);

HashMap<String, Double> chrtMap = (HashMap<String, Double>) getIntent().getSerializableExtra("chartMap");
for (Map.Entry<String, Double> entry : chrtMap.entrySet()) {
//System.out.println(">>>> " + entry.getValue());
if (entry.getValue() > 0) {
lstBrandNames.add(entry.getKey());
lstAchievedVals.add(entry.getValue());
}
}

if (lstBrandNames.size() == 0 || lstAchievedVals.size() == 0) {
Toast.makeText(getApplicationContext(), "No Achievement Progress", Toast.LENGTH_SHORT).show();
finish();
} else {

ArrayList<Double> distribution = calc_Percentage(lstAchievedVals);
System.out.println("distribution === " + distribution);
lstBrandNames = set_lables(lstBrandNames, distribution);

CategorySeries distributionSeries = new CategorySeries(
"Your Achievement Progress");
for (int i = 0; i < distribution.size(); i++) {
distributionSeries.add(lstBrandNames.get(i),
distribution.get(i));
}

DefaultRenderer defaultRenderer = new DefaultRenderer();
defaultRenderer.setApplyBackgroundColor(true);
defaultRenderer.setBackgroundColor(Color.WHITE);
defaultRenderer.setLabelsTextSize(15);
defaultRenderer.setInScroll(true);

for (int i = 0; i < distribution.size(); i++) {

SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();
Random rnd = new Random();
int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256),
rnd.nextInt(256));
seriesRenderer.setColor(color);
seriesRenderer.setDisplayChartValues(true);
seriesRenderer.setShowLegendItem(false);
defaultRenderer.addSeriesRenderer(seriesRenderer);

}

defaultRenderer.setLabelsColor(Color.BLACK);
defaultRenderer.setChartTitle("Your Achievement Progress");
defaultRenderer.setChartTitleTextSize(25);
defaultRenderer.setZoomButtonsVisible(true);
defaultRenderer.setShowLabels(true);

mChartView = ChartFactory.getPieChartView(this,
distributionSeries, defaultRenderer);
LinearLayout layout = (LinearLayout) findViewById(R.id.chart_container);
layout.removeAllViews();
layout.addView(mChartView);
}
}

public static ArrayList<Double> calc_Percentage(ArrayList<Double> list) {

ArrayList<Double> lstPercentage = new ArrayList<Double>();

double total = 0;
double precentage;
for (int i = 0; i < list.size(); i++) {
total = total + list.get(i);
}
System.out.println(total);
for (int j = 0; j < list.size(); j++) {
precentage = (list.get(j) / total) * 100;
lstPercentage.add(precentage);
}

return lstPercentage;
}

public static ArrayList<String> set_lables(ArrayList<String> lstBrandNames,
ArrayList<Double> distribution) {
String G_lable;
DecimalFormat df = new DecimalFormat("#.00");
ArrayList<String> lstLabels = new ArrayList<String>();
for (int i = 0; i < lstBrandNames.size(); i++) {
G_lable = lstBrandNames.get(i) + " : "
+ df.format(distribution.get(i)) + "%";
lstLabels.add(G_lable);
}
return lstLabels;

}

这是我的 pie_chart.xml 文件。

我想禁用设备默认的返回键功能,并在图表顶部引入关闭按钮。我在 PieChart 类中添加了一个菜单,但没有成功。为什么它不像其他 Activity 那样添加菜单?我在 list 文件中介绍了我的饼图类,如下所示。

<activity android:name=".PieChart" android:theme="@android:style/Theme.Dialog"  android:label="Progress Chart"> </activity>

我该如何解决这个问题?非常感谢任何建议。

最佳答案

试试这个

  @Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub

getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub

switch (item.getItemId()) {
case R.id.exit:
finish();
moveTaskToBack(true);
return true;

default:
return super.onOptionsItemSelected(item);
}

}

关于java - 安卓 : Adding close button into achartengine chart layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20372271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com