- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何在BarChart Item点击附近位置显示弹出菜单?
我已经创建了一个应用程序来在条形图项目点击时显示弹出菜单。问题是弹出菜单没有显示在单击的条形图项目附近。它总是显示在顶部。所以帮我显示弹出菜单靠近条形图项目点击。
主要 Activity :
package com.example.saravanakumars.spinnerchart;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
String[] chart = {"Select", "Bar Chart", "Pie Chart"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter aa = new ArrayAdapter(this, android.R.layout.simple_spinner_item, chart);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(aa);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String items = spinner.getSelectedItem().toString();
switch (items) {
case "Select":
Toast.makeText(getApplicationContext(),"Please Select Bar or Pie Chart",Toast.LENGTH_SHORT).show();
break;
case "Bar Chart":
Intent intent = new Intent(MainActivity.this, barchart.class);
startActivity(intent);
break;
case "Pie Chart":
Intent p = new Intent(MainActivity.this, piechart.class);
startActivity(p);
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
条形图.java
package com.example.saravanakumars.spinnerchart;
/**
* Created by saravanakumars on 9/18/2017.
*/
import java.util.ArrayList;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.highlight.Highlight;
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
import com.github.mikephil.charting.utils.ColorTemplate;
import java.util.ArrayList;
public class barchart extends AppCompatActivity {
BarChart chart ;
ArrayList<BarEntry> BARENTRY ;
ArrayList<String> BarEntryLabels ;
BarDataSet Bardataset ;
BarData BARDATA ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bar_chart);
chart = (BarChart) findViewById(R.id.barchart);
BARENTRY = new ArrayList<>();
BarEntryLabels = new ArrayList<String>();
AddValuesToBARENTRY();
AddValuesToBarEntryLabels();
Bardataset = new BarDataSet(BARENTRY, "Projects");
BARDATA = new BarData(BarEntryLabels, Bardataset);
Bardataset.setColors(ColorTemplate.COLORFUL_COLORS);
chart.setData(BARDATA);
chart.animateY(3000);
// chart.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// PopupMenu popup = new PopupMenu(barchart.this,chart);
//
// popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
// popup.show();
//
// popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
// public boolean onMenuItemClick(MenuItem item) {
// Toast.makeText(barchart.this,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show();
// return true;
// }
// });
// }
// });
chart.setOnChartValueSelectedListener( new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
PopupMenu popup = new PopupMenu(barchart.this,chart);
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(barchart.this,"You Clicked : " + item.getTitle(),Toast.LENGTH_SHORT).show();
return true;
}
});
}
@Override
public void onNothingSelected() {
}
});
}
public void AddValuesToBARENTRY(){
BARENTRY.add(new BarEntry(2f, 0));
BARENTRY.add(new BarEntry(4f, 1));
BARENTRY.add(new BarEntry(6f, 2));
BARENTRY.add(new BarEntry(8f, 3));
BARENTRY.add(new BarEntry(7f, 4));
BARENTRY.add(new BarEntry(3f, 5));
}
public void AddValuesToBarEntryLabels(){
BarEntryLabels.add("January");
BarEntryLabels.add("February");
BarEntryLabels.add("March");
BarEntryLabels.add("April");
BarEntryLabels.add("May");
BarEntryLabels.add("June");
}
}
弹出菜单.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/one"
android:title="Type-1"/>
<item
android:id="@+id/two"
android:title="Type-2"/>
</menu>
谢谢。
最佳答案
试试 MPAndroidChart 中可用的 MarkerView。 Check this link .我认为它会帮助您完成工作。
关于java - BarChart Item Click 如何在近处显示弹出菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46275280/
我为 BarChart 设置了 OnChartValueSelectedListener 但是当我点击任何条形图或 BarChart 中的任何地方时只有 onNothingSelected() 正在调
我正在尝试动态设置 BarChart Series 颜色。 我希望相同的系列名称始终具有相同的颜色。它在图表中并不总是相同的系列名称,这就是为什么我不能依赖图表中的位置(默认情况下颜色在数据列表中的相
我的窗口有以下 Controller : package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; impor
如何更改 JavaFX BarChart 中条形的颜色? 我找不到通过 css setStyle 方法改变颜色的方法。 最佳答案 你可以使用css设置条形颜色 .default-color0.char
我有一个 flutter 应用程序,需要 Bar chart我可以在其中单击栏来打开包含相关信息的新页面。 我该怎么做? /// Bar chart example charts.BarChart(
我有一个 flutter 应用程序,需要 Bar chart我可以在其中单击栏来打开包含相关信息的新页面。 我该怎么做? /// Bar chart example charts.BarChart(
我在使用条形图时遇到问题。我为 Primefaces 编写了一个 barCharts 示例,但在页面上它们不可见。 这里是 Bean 类: import java.io.Serializable; i
我正在使用 Flot API 在我的应用程序中以图形方式绘制数据。我能够绘制数据并且能够实现工具提示。但我在使用工具提示时遇到问题。它显示 x 轴上的标签值“未定义”。 $(function () {
我想我已经尝试了所有方法,但我无法解决这个问题。 对于每家公司,我需要用该公司的颜色分组并显示 3 个条形图,并为每个条形图显示注释。 我只能得到这样的东西: 但是我真正需要的是这样的: 我已经花了超
我在后台的 iOS 应用程序中使用 NSTimer,它每 30 秒在数组中保存一些数据。该应用程序以折线图显示最后 10 个值(5 分钟的值)。 我的问题是当应用程序不在屏幕上时,在后台使用每 30
在我的项目中我使用 GWT 图表 - 我想从所有条开始的地方删除垂直线,并减少条之间的空间。是否可以?我已经尝试了几次,但没有成功。这是我的 Java 代码: BarChart chart
我的窗口有以下 Controller : package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; impor
我的数据从 750 000 - 1 000 000+ 变化,所以我实际上不需要看到低于 750 000 的值。 如果我只是使 y[i] - 750 000 那么还有另一个问题(在 AxisY 上显示最
我正在创建谷歌条形图,它从数据库中获取数据。问题是数据包含低于“1”的值,如 0.6、0.7 等它不会出现在图表上。图表仅显示从 1 开始的值。 google.load('visualization
我正在使用 MPAndroidChart 在我的 Android 应用程序中绘制图表。 一个要求是我需要从非零 y 位置开始绘制条形图,如 this 中所建议的那样.所以我同样使用 CandleSti
是否可以将 UILabel 设置为条形图的水平条? (CorePlot) 谢谢! 最佳答案 如果您只需要标记其中一个条形,您可以使用 CPTPlotSpaceAnnotation。将 anchorPl
我正在使用 MPAndroidChart 库作为条形图,其中,我使用 chart.setDrawValueAboveBar(false) 来设置条形内部的条形值,现在我想要在条形内部垂直显示值。 请帮
我在 Google 中找不到它,所以我在这里询问。如何设置取决于 PrimeFaces BarChart 值的条形颜色。例如,如果我的值小于 50%,则条形图为红色。也许有人有类似的问题并且可以给我发
正如标题所说。基本上我有一个 ArrayList,其中 DiceRoll 是一个在 TableView 中成功使用的类,用于在值更改时更新值。 public class DiceRoll { priv
我需要从 BarChart 中删除右边的图例。 这是我的代码。 mChart = (BarChart) rootView.findViewById(R.id.chart1); mCha
我是一名优秀的程序员,十分优秀!