2010-12-13 12 views
1

私はログインからログインページを持っています。ユーザーがログインボタンをクリックすると、タブアクティビティーに移動します。タブアクティビティでは、4つのタブがあります:ホーム、在庫などtabactivityから、ネストされたアクティビティのアクティビティグループを呼び出しています。活動のグループから、私は就労活動を呼び出しています。家から私はタブバーをロードし、Webサービスを呼び出して値を解析し、ホームタブでホームアクティビティをロードしています。時間がかかる。黒い画面を避けるには?誰かが例を挙げることはできますか?私はたくさん試しましたが、うまくいきません。誰かが知っているなら、コードを書いてください。 2番目のアクティビティでは、タブバーをロードしてWebサービスを呼び出すまでロードしています。私はいくつかのスプラッシュ画面を表示する必要があります。黒い画面が1つのアクティビティから別のアクティビティに数分移動するのを表示します

doInBackgroundメソッドでタブバーを追加していますが、それは正しいですか?

import java.util.ArrayList; 

//import com.inquest.LoginActivity.FetchTask; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.ProgressDialog; 
import android.app.TabActivity; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.graphics.Typeface; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.util.Log; 
import android.view.Gravity; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.RelativeLayout; 
import android.widget.TabHost; 
import android.widget.TabWidget; 
import android.widget.TextView; 
import android.widget.TabHost.TabSpec; 
//TabActivity 

public class HelloTabWidget extends TabActivity 
{ 
    int width =40; 
    int height =49; 
    //private TabHost tabHost; 
    TextView txthome; 
    TextView txtstock; 
    TextView txtcitn; 
    TextView txtmyquest; 
    Button btn; 
    //private ProgressDialog pd = null; 
    private ProgressDialog dlg; 
    private Object data = null; 
    String strusername=""; 
    String strPassWord=""; 
    String questGroupId=""; 
    String userid=""; 
    String systemuserid=""; 
    String providerid=""; 
    private ProgressDialog dialog; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
     setProgressBarIndeterminateVisibility(true); 
    setContentView(R.layout.tab); 






    new TabTask(HelloTabWidget.this).execute(null); 

//} 

} 





public class TabTask extends AsyncTask<Void, Void,Void> 
{ 
     private ProgressDialog dlg; 
      private Context ctx; 
     public TabTask(Context context) { 
      ctx = context; 
     } 




     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      dlg = new ProgressDialog(HelloTabWidget.this); 
      dlg.setMessage("Loading...."); 
      dlg.show(); 
     } 



     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 
      try 
      { 
       TabHost.TabSpec spec; 
       TabHost tabHost=getTabHost(); 
       TabWidget tabWidget = tabHost.getTabWidget(); 
       Resources res = getResources(); 

                Typeface myTypeface = Typeface.createFromAsset(ctx.getAssets(),"verdanab.TTF"); 
       Typeface myTypeface1 = Typeface.createFromAsset(ctx.getAssets(),"verdana.TTF"); 
       Intent homeintent; 
       // Create an Intent to launch an Activity for the tab (to be reused) 
       homeintent = new Intent(); 
       Bundle bundle=getIntent().getExtras(); 
       String strusername=bundle.get("strUserName").toString(); 
       String strPassWord=bundle.get("strPassword").toString(); 
       String questGroupId=bundle.get("questGroupId").toString(); 
       String userid=bundle.get("userid").toString(); 
       String systemuserid=bundle.get("systemuserid").toString(); 
       String providerid=bundle.get("providerid").toString(); 
        Log.d("home activity username", strusername); 
       Log.d("home activity password", strPassWord); 
       Log.d("home activityquestGroupId",questGroupId); 
        homeintent.setClass(ctx, HomeActivityGroup.class); 
        homeintent.putExtra("strUserName", strusername); 
        homeintent.putExtra("strPassWord",strPassWord); 
        homeintent.putExtra("questGroupId",questGroupId); 
        homeintent.putExtra("userid",userid); 
        homeintent.putExtra("systemuserid", systemuserid); 
        homeintent.putExtra("checking", "one"); 

        spec = tabHost.newTabSpec("home").setIndicator("Home",res.getDrawable(R.drawable.home_tab_bar_icon)).setContent(homeintent); 
       tabHost.addTab(spec); 

       //homeintent = new Intent().setClass(this,ThemeSearchActivity.class); 
       homeintent = new Intent().setClass(ctx,StockActivity.class); 
       homeintent.putExtra("strUserName", strusername); 
       homeintent.putExtra("strPassWord",strPassWord); 
       homeintent.putExtra("questGroupId",questGroupId); 
       homeintent.putExtra("userid",userid); 
       homeintent.putExtra("systemuserid", systemuserid); 
       homeintent.putExtra("providerid", providerid); 
       spec = tabHost.newTabSpec("stock").setIndicator("Stock",res.getDrawable(R.drawable.stocks_tab_bar_icon)).setContent(homeintent); 
       tabHost.addTab(spec); 
       homeintent = new Intent().setClass(ctx,ArticleActivity.class); 
        spec = tabHost.newTabSpec("citn").setIndicator("CITN",res.getDrawable(R.drawable.citn_tabbar_icon)).setContent(homeintent); 
       tabHost.addTab(spec); 
       homeintent = new Intent().setClass(ctx, MyCompaniesActivity.class); 
       spec = tabHost.newTabSpec("myquest").setIndicator("My Quest",res.getDrawable(R.drawable.quest_tab_bar_icon)).setContent(homeintent); 
       tabHost.addTab(spec); 

       for (int i =0; i < tabWidget.getChildCount(); i++) { 
        //tabWidget.getChildAt(i).setBackgroundColor(R.color.black); 
         tabWidget.getChildAt(i).getLayoutParams().height = height; 
       tabWidget.getChildAt(i).getLayoutParams().width = width; 
       RelativeLayout relLayout = (RelativeLayout)tabWidget.getChildAt(i); 
       TextView tv = (TextView)relLayout.getChildAt(1); 
       tv.setTextSize(10.0f); 
       //tv.setCompoundDrawablesWithIntrinsicBounds(0, 1, 0, 0); 
       tv.setTypeface(myTypeface1);   



      } 
      } 
       catch (Exception e) { 
       // TODO: handle exception 
        e.printStackTrace(); 
      } 

      return null; 
     } 

    } 


} 
+0

あなたは別のスレッドでWebサービスを呼び出し、進行状況バーを使用して黒い画面を避けることができます。 –

+0

例を与えることができます – mohan

答えて

3

TabbarアクティビティにAsyncTask機能を実装する必要があります。

private class LongOperation extends AsyncTask<String, Void, String> { 

@Override 
    protected void onPreExecute() { 
    // Things to be done before execution of long running operation. For example showing ProgessDialog 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     // perform long running operation operation 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     // execution of result of Long time consuming operation 
    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 
     // Things to be done while execution of long running operation is in progress. For example updating ProgessDialog 
    } 
} 
+0

2番目のアクティビティで、私はアクティビティグループからアクティビティグループを呼び出しています。別のアクティビティを呼び出しています。 – mohan

1

私も同じ問題を抱えていますが、私の問題は、活動にこの属性を追加することによって解決される:

[Activity(Theme = "@android:style/Theme.Translucent.NoTitleBar")] 

はそれを試してみてください。

0

onCreate()メソッド内で長時間実行されているタスクを呼び出さないだけで、タスクが完了するまでアクティビティの作成がブロックされます。

このメソッドでUIタスクを定義し、onStart()メソッドまたはonResume()メソッドから他の呼び出しを呼び出します。

可能な限りoncreate()メソッドを維持してください。

関連する問題