この質問はおそらく何度も聞かれている..はい!いわゆる「ブラック スクリーンの問題」に直面しています。
最初のアクティビティは、ログインが行われるメイン アクティビティであり、このアクティビティの後に、ユーザー アカウントの簡単な概要レポートである次のアクティビティが続きます。
さて、このレポートでは、データセットを取得して解析し、それを使用してテーブルを動的に作成します。ヴィランブラックスクリーンがここに登場!! 表のように、レポートは適切にレンダリングされますが、その画面では、この黒い半透明のレイヤーが表示され続けます。
ハンドラー、asynctask、半透明のテーマを使用してすべてを試しましたが、何も役に立ちません!! 概要レポートを読み込むと、悪役がまだ表示されます。「戻る」ボタンを押すと消え、最初にロードしたときに予想されるように、画面は正常に表示されます..私のコーディングアプローチ(動的にテーブルを生成する)またはエミュレータの問題か何かです。
My emulator details are as follows:
CPU:ARM
Target: Android 2.3.3
skin: WVGA800
sd card:1024M
誰か私を救ってください!!
編集:
私の2番目の活動では、次のことを行います:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_summary_report);
ad = new AlertDialog.Builder(this).create();
boolean is = IsConnectedToNetwork();
if (is == true){
Handler execWS = new Handler();
execWS.post(callWS);//Fetch Data via web service and parse it
if(result != null){
Handler genUI = new Handler();
genUI.post(createUI);// generate the table based on "result". ie. in a for loop i create textviews and append it to the table layout
}
}
else{
Error = "Connection Failed. Try Again!";
}
if(Error.length() != 0){
ad.setMessage(Error);
ad.setTitle("Error..");
ad.show();
}
}
2 番目のアクティビティの Xml レイアウト..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:gravity="center"
android:orientation="vertical">
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/Logo"
android:src="@drawable/complogo"
android:gravity="top"/>
<TextView
android:id="@+id/lblLoginInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_horizontal"/>
</TableLayout>
<TableLayout
android:id="@+id/tblSummRep"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="4"
android:padding="5dip">
</TableLayout>
<TableLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="5dip">
<TextView
android:id="@+id/AppName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/AppName"
android:textColor="#ff6600" />
<TextView
android:id="@+id/AppVersion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/AppVersion"
android:textColor="#ff6600" />
<TextView
android:id="@+id/Disclaimer"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Disclaimer"
android:textColor="#ff6600" />
</TableLayout>
</LinearLayout>
テキストビューを「tblSummRep」に追加します..
私のasynctaskクラスを更新してください..
private class ShareWork extends AsyncTask<Void, Void, Boolean>{
ProgressDialog pDlg;
//String[][] result = null;
protected void onPreExecute(){
pDlg.setMessage("Please wait while the Report Loads...");
pDlg.show();
}
@Override
protected Boolean doInBackground(Void... params) {
boolean RetVal = false;
//my fetch code
return RetVal;
}
protected void onPostExecute(Boolean value){
if(value == true){
pDlg.setMessage("Please try again later!!");
pDlg.show();
}
else{
createUI.run();
}
}
}