私は問題があります。私のアプリがフィードからニュースをダウンロードしている間、進捗ダイアログを作りたい。 これは、現時点では私のコードです:Android - Progress Dialog
public class NyhedActivity extends Activity {
String streamTitle = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.nyheder);
TextView result = (TextView)findViewById(R.id.result);
try {
URL rssUrl = new URL("http://rss.tv2sport.dk/rss/*/*/*/248/*/*");
SAXParserFactory mySAXParserFactory = SAXParserFactory.newInstance();
SAXParser mySAXParser = mySAXParserFactory.newSAXParser();
XMLReader myXMLReader = mySAXParser.getXMLReader();
RSSHandler myRSSHandler = new RSSHandler();
myXMLReader.setContentHandler(myRSSHandler);
InputSource myInputSource = new InputSource(rssUrl.openStream());
myXMLReader.parse(myInputSource);
result.setText(streamTitle);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result.setText("Cannot connect RSS!");
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result.setText("Cannot connect RSS!");
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result.setText("Cannot connect RSS!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
result.setText("Cannot connect RSS!");
}
}
private class RSSHandler extends DefaultHandler
{
final int stateUnknown = 0;
final int stateTitle = 1;
int state = stateUnknown;
int numberOfTitle = 0;
String strTitle = "";
String strElement = "";
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
strTitle = "Nyheder fra ";
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
strTitle += "";
streamTitle = "" + strTitle;
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
if (localName.equalsIgnoreCase("title"))
{
state = stateTitle;
strElement = "";
numberOfTitle++;
}
else
{
state = stateUnknown;
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
if (localName.equalsIgnoreCase("title"))
{
strTitle += strElement + "\n"+"\n";
}
state = stateUnknown;
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
String strCharacters = new String(ch, start, length);
if (state == stateTitle)
{
strElement += strCharacters;
}
}
}
}
私は進捗ダイアログを使用する方法を見つけ出すことはできません。誰でも私のどこにプログレス・ダイアグラムを定義するかを示すことができますか? 私はたくさんの場所を見てきましたが、誰もが違ったやり方をしているようです。(
私は睡眠不足しかし、私は私が間違ってやっているかを把握することはできません。
私はそのように試みました。 ProgressDialogをどこで起動してコードを動作させるかわかりません。 私はそれを開始するとき、私はそれを却下することはできません。 私はおそらく間違った範囲に物事を配置すると思う:/ – Kano
メソッドの参照を作成する代わりに、クラスにグローバルにする必要があります。私はそれを更新します。進捗を開始するには、開始するときに 'showDialog(PROGRESS_DIALOG)'を呼び出します。そして、それを削除するために 'dialog.dismiss()'を呼び出します。私はいくつかの編集を行います。 – DeeV
私は数回始めることにしましたが、グローバルクラスで進捗ダイアログを作成しても、それを使用することはできません。 しかし、私はJavaにとって非常に新しく、すべてのルールを完全に理解していません。 解決策を楽しみにしていて、試してみると約3時間かかってきました:) – Kano