onButtonClcick
для кнопки index
, должен отображаться A graph
, который получает данные из URL.Я использовал AsyncTask
для того же.
Я застрял между двумя подходами.
1) Если я вызываю afterload()
метод в postExecute()
, который вызывается на index
Нажатие кнопки, я просто получаю первый скриншот, как показано ниже, т.е. Граф не отображается .
Я отладил его, чтобы найти, что был вызван метод afterload (), но граф все еще былне отображается.
2) Если я не вызову метод afterload()
в postExecute()
.Вместо этого я скопировал все содержимое метода afterload()
в метод onCreate()
new class graphView
, затем GRAPH GETHET DISPLAYED .как показано на втором снимке экрана
НО ВСЕ ДРУГИЕ ФУНКЦИОНАЛЬНОСТИ, КАК ONCLICKLISTENERS, СПИСОК ДАННЫХ ФИЛЬТРАЦИИ УТРАТЕН .(обратите внимание, что во 2-й скриншоте таблица не отображается).Это связано с использованием setContentView()
во втором упражнении, и, следовательно, макет перезапускается, поэтому управление переходит ко второму упражнению.
ЛЮБАЯ ПОМОЩЬ БУДЕТ СБЕРЕЖИТЬ !!!
DataAttach.java
public class DataAttach extends Activity {
//ALL VARIABLES DECLARED
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
public void init() {
//ALL FINDBYVIEWID COMMANDS
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://abc.com/" });
ed.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start,
int before, int count) {
//filtering listview data
}
});
lsym.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
btnindex.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mySimpleXYPlot.setVisibility(View.VISIBLE);
WebPageTask task1 = new WebPageTask();
task1.execute(new String[] { "http://pqr.com/" });
}
});
btngainer.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://xyz.com/" });
}
});
btnloser.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "http://ijk.com/" });
}
});
finally {
dbM.close();
}
}
private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
//DO SOMETHING
}
@Override
protected void onPostExecute(String result) {
//DO SOMETHING
}
}
private class WebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
//FETCHING DATA FROM URL
}
@Override
protected void onPostExecute(String result) {
//POPULATING 'time' & 'current' ARRAYS
afterload(time, current);
//============================================================================
//============================================================================
//IF I USE BELOW COMMENTED CODE THEN IT DISPLAYS GRAPH BUT ALL THE ONCLICKLISTENERS DOESN'T WORK.
//============================================================================
//============================================================================
// Bundle b = new Bundle();
// b.putStringArray("time", time);
// b.putStringArray("current", current);
//
// Intent i = new Intent(getApplicationContext(), DrawGraph.class);
// i.putExtras(b);
// DataAttach.this.startActivity(i);
}
public void afterload(String[] time, String[] current) {
//POPULATING 'timenumber' & 'currentnumber' ARRAYS
Number[] series1Numbers = timenumber;
Number[] series2Numbers = currentnumber;
XYSeries series1 = new SimpleXYSeries(
Arrays.asList(series1Numbers),
Arrays.asList(series2Numbers), "Reliance");
LineAndPointFormatter series1Format = new LineAndPointFormatter(
Color.rgb(0, 200, 0), // line color
Color.rgb(0, 100, 0), // point color
Color.rgb(150, 190, 150)); // fill color (optional)
mySimpleXYPlot.addSeries(series1, series1Format);
mySimpleXYPlot.setTicksPerRangeLabel(2);
mySimpleXYPlot.setTicksPerDomainLabel(2);
mySimpleXYPlot.setRangeStep(XYStepMode.INCREMENT_BY_VAL, 1);
mySimpleXYPlot.setDomainStep(XYStepMode.SUBDIVIDE, 10);
mySimpleXYPlot.setDomainValueFormat(new MyDateFormat());
mySimpleXYPlot.disableAllMarkup();
}
}
public class MyDateFormat extends Format {
//CONVERTING DATE FORMAT
}
1-й и 2-й СКРИНШОТ УСТАНОВЛЕНЫ ДО И ПОСЛЕ КЛИКАНА INDEX
КНОПКА.
