Java Can';不要让旋转进度条工作
不管我怎么努力,我都无法让我的进度条工作。代码如下:Java Can';不要让旋转进度条工作,java,android,progress,Java,Android,Progress,不管我怎么努力,我都无法让我的进度条工作。代码如下: public void setDayView(final int _day, final int _month, final int _year) { ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar); progressBar.setVisibility(ProgressBar.VISIBLE); comm = new Threa
public void setDayView(final int _day, final int _month, final int _year) {
ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar);
progressBar.setVisibility(ProgressBar.VISIBLE);
comm = new Thread() {
public void run() {
final postRequest req = new postRequest(username, password);
doc = (Document) req.GetDayEvents(_day, _month, _year);
}
};
comm.start();
while (comm.isAlive()) { // waiting for network to finish
}
progressBar.setVisibility(ProgressBar.GONE);
NodeList eventsTitles = doc.getElementsByTagName("Title");
NodeList eventsClasses = doc.getElementsByTagName("Class");
NodeList eventsTypes = doc.getElementsByTagName("Type");
NodeList eventsComments = doc.getElementsByTagName("Comment");
NodeList eventsAmounts = doc.getElementsByTagName("Amount");
NodeList eventsHashes = doc.getElementsByTagName("Hash");
NodeList refCurrency = doc.getElementsByTagName("RefCurrency");
NodeList dateStamp = doc.getElementsByTagName("DateStamp");
final int nrOfEvents = eventsTitles.getLength();
LinearLayout dayEventsArea = (LinearLayout) findViewById(R.id.DayEventsArea);
// set SelectedDayLabel
TextView selDayLabel = (TextView) findViewById(R.id.selectedDayLabel);
selDayLabel.setText(dateStamp.item(0).getTextContent());
//
// set day totals labels
TextView dayDebit = (TextView) findViewById(R.id.dayDebitLabel);
TextView dayOutgo = (TextView) findViewById(R.id.dayOutgoLabel);
TextView dayIncome = (TextView) findViewById(R.id.dayIncomeLabel);
dayDebit.setText("Debit: "
+ doc.getElementsByTagName("DayDebit").item(0).getTextContent()
+ " " + refCurrency.item(0).getTextContent());
dayOutgo.setText("Outgo: "
+ doc.getElementsByTagName("DayOutgo").item(0).getTextContent()
+ " " + refCurrency.item(0).getTextContent());
dayIncome.setText("Income: "
+ doc.getElementsByTagName("DayIncome").item(0)
.getTextContent() + " "
+ refCurrency.item(0).getTextContent());
//
dayEventsArea.removeAllViews();
// clearing all local caches
_eventsTitlesLocalCopy.clear();
_eventsClassesLocalCopy.clear();
_eventsAmountsLocalCopy.clear();
_eventsCommentsLocalCopy.clear();
_eventsTypesLocalCopy.clear();
_eventsHashesLocalCopy.clear();
//
for (int i = 0; i < eventsTitles.getLength(); i++) {
// creating a local cache of the day events, as they can be edited
// and sent back
_eventsTitlesLocalCopy.add(eventsTitles.item(i).getTextContent());
_eventsClassesLocalCopy.add(eventsClasses.item(i).getTextContent());
_eventsAmountsLocalCopy.add(eventsAmounts.item(i).getTextContent());
_eventsCommentsLocalCopy.add(eventsComments.item(i)
.getTextContent());
_eventsTypesLocalCopy.add(eventsTypes.item(i).getTextContent());
_eventsHashesLocalCopy.add(eventsHashes.item(i).getTextContent());
//
public void setDayView(最终整数日、最终整数月、最终整数年){
ProgressBar ProgressBar=(ProgressBar)findViewById(R.id.ProgressBar);
progressBar.setVisibility(progressBar.VISIBLE);
comm=新线程(){
公开募捐{
最终postRequest req=新的postRequest(用户名、密码);
doc=(文档)请求GetDayEvents(\u天、\u月、\u年);
}
};
comm.start();
在(comm.isAlive()){//等待网络完成时
}
progressBar.setVisibility(progressBar.GONE);
NodeList eventsTitles=doc.getElementsByTagName(“标题”);
NodeList EventsClass=doc.getElementsByTagName(“类”);
NodeList eventsTypes=doc.getElementsByTagName(“类型”);
节点列表事件注释=doc.getElementsByTagName(“注释”);
NodeList eventsAmounts=doc.getElementsByTagName(“金额”);
nodelisteventshashes=doc.getElementsByTagName(“哈希”);
NodeList refCurrency=doc.getElementsByTagName(“refCurrency”);
节点列表日期戳=doc.getElementsByTagName(“日期戳”);
final int nrOfEvents=eventsTitles.getLength();
LinearLayout dayEventsArea=(LinearLayout)findViewById(R.id.dayEventsArea);
//设置SelectedDayLabel
TextView selDayLabel=(TextView)findViewById(R.id.selectedDayLabel);
selDayLabel.setText(dateStamp.item(0.getTextContent());
//
//设置日总计标签
TextView dayDebit=(TextView)findViewById(R.id.dayDebitLabel);
TextView dayOutgo=(TextView)findViewById(R.id.dayOutgoLabel);
TextView dayIncome=(TextView)findViewById(R.id.dayIncomeLabel);
dayDebit.setText(“借方:
+doc.getElementsByTagName(“DayDebit”).item(0.getTextContent()
+“”+refCurrency.item(0.getTextContent());
dayOutgo.setText(“Outgo:
+doc.getElementsByTagName(“DayOutgo”).item(0.getTextContent()
+“”+refCurrency.item(0.getTextContent());
dayIncome.setText(“收入:
+文件getElementsByTagName(“日收入”)。项目(0)
.getTextContent()+“”
+refCurrency.item(0.getTextContent());
//
dayEventsArea.removeAllViews();
//清除所有本地缓存
_eventsTitlesLocalCopy.clear();
_eventsclasseLocalCopy.clear();
_eventsAmountsLocalCopy.clear();
_eventsCommentsLocalCopy.clear();
_eventStypeLocalCopy.clear();
_eventsHashesLocalCopy.clear();
//
对于(int i=0;i
和layout.xml中的代码
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:layout_gravity="center" />
如果我关闭代码行progressBar.setVisibility(progressBar.GONE),那么我的进度条将一直显示,因此它实际上可以工作。我建议对此使用一个,而不是您的线程实现(单击链接以获取文档中的清晰示例)。您可以在启动时使进度条可见,并在
onPostExecute
方法中再次隐藏进度条。我希望您的while循环会出现一些问题,这会更干净。无需担心,我可以通过在单独的线程上运行while循环来解决此问题。在上面的代码中,它在UI线程上运行,因此所有用户界面都可以正常运行在执行循环时,gs向上移动