こんにちは、自分のアクティビティにプログレスバーを追加しようとしています。ここにシナリオがあります: 私の活動MESSAGINGはIMSERVICE.SENDFILE()を呼び出し、IMSERVICE.SENDFILE()の引数としてMESSAGINGのコンテキストを渡します。 IMSERVICE.SENDFILE()はSOCKETOPERATOR.SENDFILE()を呼び出します。私も同じ文脈を渡します。あなたは、私はそれでプログレスバーを持って見ることができるようになりましたandroid progress bar
public boolean sendFile(Context c,String path,String ip, int port) {
// TODO Auto-generated method stub
try {
String[] str = ip.split("\\.");
byte[] IP = new byte[str.length];
for (int i = 0; i < str.length; i++) {
IP[i] = (byte) Integer.parseInt(str[i]);
}
Socket socket = getSocket(InetAddress.getByAddress(IP), port);
if (socket == null) {
Log.i("SO sendFILE","");
return false;
}
Log.i("SocketOP", "sendFILE-1");
File f = new File(path);
String filename=path.substring(path.lastIndexOf("/")+1);
System.out.println("filename:"+filename);
fin.filename = "~"+filename;
BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
FileInputStream fileIn = new FileInputStream(f);
Log.i("SocketOP", "sendFILE-2");
byte [] buffer = new byte [(int)f.length()];
System.out.println("SO sendFile f.length();" + f.length());
int bytesRead =0;
ProgressDialog pbarDialog = new ProgressDialog(c);
pbarDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pbarDialog.setMessage("Loading...");
pbarDialog.setCancelable(false);
pbarDialog .setProgress(0);
pbarDialog.show();
while ((bytesRead = fileIn.read(buffer)) > 0) {
out.write(buffer, 0, buffer.length);
//get the previous value of progress bar
int old_value = pbarDialog .getProgress();
//calculate how much did you read from the file
int new_read =(int)(((float) f.length()/bytesRead)*100);
//add the new read to the old_value
int value = new_read+old_value;
pbarDialog.setProgress(value);
Log.i("SocketOP", "sendFILE-3");
System.out.println("SO sendFile" + bytesRead +filename);
}
pbarDialog.dismiss();
out.flush();
out.close();
fileIn.close();
} catch (IOException e) {
return false;
//e.printStackTrace();
}
// Toast.makeText(this, "Lvbvhhging...", Toast.LENGTH_SHORT).show();
return true;
}
:SOCKETOPERATOR.SENDFILE()は、ファイルを送信し、それはこのようになります方法があります。私はそれを私のMESSAGING活動から見せる方法を知らない。また、私は正しくprogressDilogを使用しているかわからない。誰でも助けてくれますか?
これは3回目の質問です。どうして? – Michele
cuz mはそれに苦しんでいます。私の最後の投稿では、答えが新しい質問をするのに役立たない場合、誰かが言った。 –