我有一个可扩展的列表视图,父“group”行包含TextView“for Name”和ProgressBar“for RSSI”。现在代表的RSSI 信号健康状况可以是20%,40%,60%,80%或100%,进度条应指示信号的健康状况。
所以我创建了5个进度条,其值为android:progress =“”根据信号强度的不同而不同。
例如,
if the RSSI = -70; I should display the progressBar with 20%
if the RSSI = -50; I should display the progressBar with 40%
if the RSSI = -30; I should display the progressBar with 60%
if the RSSI = -10; I should display the progressBar with 80%
所以我创建了belwo xml文件,显示了进度栏的进度百分比不同。
现在我的问题是,根据收到的RSSI调用每个进度条的推荐方法是什么
XML
<RelativeLayout 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:padding="5dp"
android:paddingTop="10dp"
tools:context=".ProgressBarTutorial" >
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:progressDrawable="@drawable/progress"
android:progress="20" />
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:progressDrawable="@drawable/progress"
android:layout_below="@+id/progressBar1"
android:layout_marginTop="30dp"
android:progress="40"/>
<ProgressBar
android:id="@+id/progressBar3"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:progressDrawable="@drawable/progress"
android:layout_below="@+id/progressBar2"
android:layout_marginTop="30dp"
android:progress="60"/>
<ProgressBar
android:id="@+id/progressBar4"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:progressDrawable="@drawable/progress"
android:layout_below="@+id/progressBar3"
android:layout_marginTop="30dp"
android:progress="80"/>
<ProgressBar
android:id="@+id/progressBar5"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:progressDrawable="@drawable/progress"
android:layout_below="@+id/progressBar4"
android:layout_marginTop="30dp"
android:progress="100"/>
</RelativeLayout>
答案 0 :(得分:2)
我没有动过,为什么你创建了5个progressBar用于显示进度,但是,如果要显示progressBar,则应使用mProgressBar.setVisibility(View.Visible);
并隐藏使用mProgressBar.setVisibility(View.GONE);
对于访问progressBars,在我看来,你可以使用Map
类的一些实现。 (例如HashMap
)
如果您只想显示进度,最佳解决方案是使用ProgressBar.setProgress(int)
。
答案 1 :(得分:1)
我想在代码中动态添加/显示进度条,您可以将方法set visibility(int VISIBILITY)
与常量View.VISIBLE
或View.INVISIBLE
一起使用。
但是,我认为最好只有一个操作栏并根据您的RSSI更改进度(在progressBar上使用setProgress(int))
。