onButtonClcick
ボタンを入力すると、URLからデータを取得するA が表示されます。私は同じのためにAsyncTask
を使用しました。OnPostExecuteが機能しておらず、グラフを描画できません。に
私は2つのアプローチの間に立ち往生しています。私はindex
ボタンのクリックで呼び出されpostExecute()
でafterload()
メソッドを呼び出した場合、すなわちグラフの下に示すように
1)、私はちょうど第一のスクリーンショットを取得していますがを表示取得されていません。
私はそれをデバッグして、afterload()メソッドが呼び出されたがグラフが表示されていないことを確認しました。
2)私がafterload()
メソッドをpostExecute()
に呼び出していない場合。代わりにafterload()
メソッドのすべてのコンテンツをonCreate()
メソッドの新しいクラスgraphView
にコピーした後、というグラフィックが表示されますです。
BUT その他の機能性のような他の機能は、リストリストのデータが失われていますです。 (2番目のスクリーンショットの表は表示されないことに注意してください)。これは第2のアクティビティでsetContentView()
を使用することによるものであるため、レイアウトは再起動され、制御は2番目のアクティビティになります。
すべてのヘルプは生き残りになります!
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
}
1ST & 2NDスクリーンショットINDEX
]ボタンをクリックした後に&前に取得されます。後負荷()メソッドの終了時に
グラフを別のレイアウトに移動しようとすると、リストのデータがフラッシュされないことがあります。 – Yahor10
どのタイプの** mySimpleXYPlot **? – NOSTRA
@ NOSTRA XYPlot。私はアンドロイドプロットを使用しており、必要なライブラリをインポートしました。 – GAMA