我正在开发一个应用程序,当用户单击按钮时,将打开一个新的活动布局。这个新布局包含各种视图。
其中之一是邮政编码EditText
。我希望这个邮政编码EditText
自动获取用户的邮政编码GPS
并填写。为此,我想这样工作:
- 用户点击一个按钮。
- 加载新布局。
- 所有视图都可以完美加载,并且在邮政编码前
EditText
会显示一个加载按钮,并通过 GPS 自动显示。
我如何处理第三点,即显示加载直到未获取用户邮政编码。
我正在开发一个应用程序,当用户单击按钮时,将打开一个新的活动布局。这个新布局包含各种视图。
其中之一是邮政编码EditText
。我希望这个邮政编码EditText
自动获取用户的邮政编码GPS
并填写。为此,我想这样工作:
EditText
会显示一个加载按钮,并通过 GPS 自动显示。我如何处理第三点,即显示加载直到未获取用户邮政编码。
以以下代码段为例。不过,您将不得不填写一些空白。
这就是我ProgressBar
在我的一个应用程序中显示 a 的方式Activities
。它有一个 ListView,您必须将其替换为您自己的内容。
<LinearLayout
android:id="@+id/linlaHeaderProgress"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="horizontal"
android:visibility="gone" >
<ProgressBar
android:id="@+id/pbHeaderProgress"
style="@style/Spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp" >
</ProgressBar>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="left|center"
android:padding="2dp"
android:text="Loading...."
android:textSize="20sp" >
</TextView>
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:cacheColorHint="@android:color/transparent"
android:divider="#000000"
android:dividerHeight="0dp"
android:fadingEdge="none"
android:persistentDrawingCache="scrolling"
android:scrollbars="none" >
</ListView>
现在,在您将此布局映射到您的 Java 代码中Activity
,将LinearLayout linlaHeaderProgress
. 请注意,在 XML 本身中,该android:visibility="gone"
属性设置为"gone"
.
如果您使用 AsyncTask 来获取邮政编码,则当该过程发生在 中时doInBackground()
,ProgressBar
通过切换 中的可见性来显示linlaHeaderProgress
,onPreExecute()
如下所示:
@Override
protected void onPreExecute() {
// SHOW THE PROGRESS BAR (SPINNER) WHILE FETCHING POST DETAILS
linlaHeaderProgress.setVisibility(View.VISIBLE);
}
在onPostExecute()
, 中再次像这样切换可见性:
@Override
protected void onPostExecute(Void result) {
// HIDE THE PROGRESS BAR (SPINNER) AFTER FETCHING THE POST DETAILS
linlaHeaderProgress.setVisibility(View.GONE);
}
If you are not using an AsyncTask, but are instead doing the processing in a Method
, use this at the start of the method: linlaHeaderProgress.setVisibility(View.VISIBLE);. And use this at the end of the method once you have displayed the ZIP code in the EditText: linlaHeaderProgress.setVisibility(View.GONE);
I declare the LinearLayout linlaHeaderProgress
globally so I can reuse it wherever required. Let me know if this helps, or if you have any further questions for me.