2012-01-03 49 views
0

我有一個活動,其中設備檢查經度和緯度。 獲得經度和緯度後,我將這些信息傳遞給服務器,讓我最近的分支。 但是在我調用位置管理器獲取經度和緯度之前,我打電話給一個具有可擴展列表的佈局,以填補從服務器獲取數據的空間。 但是,無論何時LocationManager獲得衛星定位,lat和long,佈局都不會呈現爲黑屏,直到我從服務器獲取數據,即使在手機中也能看到黑屏。 讓我知道爲什麼這個屏幕出現在兩者之間。Android佈局沒有呈現爲gps

Before Data gets loaded I get this screen

後,我從服務器回去我得到這個通常的屏幕布局 enter image description here

這是我在哪裏首先調用佈局我的Java代碼部分,然後GPS定位管理器,然後打至服務器獲取分支列出

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.findus_layout); 
    /*findUsProgressbarField = (ProgressBar)findViewById(R.id.findUsProgressBar); 
    findUsProgressbarField.setVisibility(View.VISIBLE);*/ 

    mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 

    SharedPreferences findUsSetDetailsSharedPreference = getSharedPreferences("gpsdetails",MODE_PRIVATE); 
    String latitudeString = findUsSetDetailsSharedPreference.getString("latitude", ""); 
    String longitudeString = findUsSetDetailsSharedPreference.getString("longitude", ""); 

    try { 

    ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
    postParameters.add(new BasicNameValuePair("latitude", latitudeString)); 
     postParameters.add(new BasicNameValuePair("longitude", longitudeString)); 


    String response = CustomHttpClient.executeHttpPost("http://192.168.56.259:8080/StrutsExample/FindUS.slt",postParameters); 

XML佈局

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="match_parent" 
android:background="@drawable/white" 
android:fillViewport="true" 
android:tileMode="repeat" > 

<RelativeLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
    <LinearLayout 
     android:id="@+id/header" 
     android:layout_alignParentTop="true" 
     android:layout_width="fill_parent" 
     android:layout_height="30dip" 
     android:background="@drawable/black" 
     android:tileMode="repeat"> 
     <ImageButton 
      android:id="@+id/buttonBackFindUs" 
      android:src="@drawable/greenarrow" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/black" 
      android:tileMode="repeat"/> 
     <ImageView 
      android:src="@drawable/logo" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 
     </LinearLayout> 
     <TextView 
      android:id="@+id/FindUsTextView" 
      android:fillViewport="true" 
      android:layout_marginTop="30dip" 
      android:layout_height="50dip" 
      android:layout_width="fill_parent"/> 

     <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginTop="80dip"> 


<ExpandableListView android:id="@+id/android:list" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/> 

<TextView android:id="@+id/android:empty" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:text="@string/main_no_items"/> 
</LinearLayout> 

    <LinearLayout 
     android:layout_alignParentBottom="true" 
     android:layout_width="fill_parent" 
     android:layout_height="30dip" 
     android:layout_weight="1" 
     android:weightSum="5" 
     android:orientation="horizontal" 
     android:background="@drawable/black" 
     android:tileMode="repeat"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:layout_height="fill_parent"> 

     <ImageButton 
      android:id="@+id/footerMainBtnHome" 
      android:layout_width="wrap_content" 
      android:layout_height="12dip" 
      android:src="@drawable/home" 
      android:background="@drawable/black"/> 
     <TextView 
      android:text="Home" 
      android:textSize="8dip" 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:layout_height="fill_parent"> 

     <ImageButton 
      android:id="@+id/footerMainBtnProducts" 
      android:layout_width="wrap_content" 
      android:layout_height="12dip" 
      android:src="@drawable/products" 
      android:background="@drawable/black"/> 
      <TextView 
      android:text="Products" 
      android:textSize="8dip" 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:layout_height="fill_parent"> 

     <ImageButton 
      android:id="@+id/footerMainBtnCart" 
      android:layout_width="wrap_content" 
      android:layout_height="12dip" 
      android:src="@drawable/cart" 
      android:background="@drawable/black"/> 
     <TextView 
      android:text="Cart" 
      android:textSize="8dip" 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:layout_height="fill_parent"> 

     <ImageButton 
      android:id="@+id/footerMainBtnFeedback" 
      android:layout_width="wrap_content" 
      android:layout_height="12dip" 
      android:src="@drawable/feedback" 
      android:background="@drawable/black"/> 
     <TextView 
      android:text="Feedback" 
      android:textSize="8dip" 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:layout_height="fill_parent"> 

     <ImageButton 
      android:id="@+id/footerMainBtnHelp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/help" 
      android:background="@drawable/black"/> 
     <TextView 
      android:text="Help" 
      android:textSize="8dip" 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 



     </LinearLayout> 

可以讓我知道會是什麼問題。 尋找您的答覆。 謝謝。

回答

1

我建議在AsyncTask中撥打遠程服務器的所有電話。這裏發生的事情是UI被阻止,直到你收到迴應。這是奇怪的用戶體驗,而且如果我沒有錯誤,如果用戶持續超過20秒,您會冒險獲得ANR?

+0

我有三個類之一的活動類,其中有佈局和可擴展列表視圖擴展ExpandableListActivity和實現onChildClickListener,第二類爲gps的位置偵聽器和第三類爲AsyncTask,第二和第三類是第一類的類。獲得gps之後AsyncTask執行完全不會發生。任何幫助或指針。謝謝。 – Mukunda 2012-01-04 09:20:19

+0

沒有看到更多的代碼,我不能添加更多的幫助。我能否看到至少如何調用異步任務? – 2012-01-04 15:19:02

+0

我已經發布整個代碼在一個新的問題 http://stackoverflow.com/questions/8728184/strange-behaviour-of-async-task-code-in-android/ – Mukunda 2012-01-04 17:31:38