我正在开发一个执行shell命令并显示输出的小应用程序,例如ping命令。该应用程序有一个edittext,它将主机名或IP作为用户输入,并带有一个按钮来执行该命令。目前我使用了一个ArrayList,它存储了执行命令后生成的输出。但它不是显示输出的正确方法,我宁愿像动态显示输出一样,在运行时逐行显示输出。是否有任何特定的方法在运行时显示输出。
以下是代码
protected void executePingCommand() {
List<String> output=new ArrayList<String>();
output.clear();
try
{
Process pr=Runtime.getRuntime().exec(new String[]{"su","-c","ping -c 5 "+ipadd});
BufferedReader br=new BufferedReader(new InputStreamReader(pr.getInputStream()));
String var=null;
String temp=br.readLine();
while((var=br.readLine())!=null)
{
output.add(var);
display(output);
}
}
catch(Exception e)
{
}
}
protected void display(List<String> output2) {
// TODO Auto-generated method stub
pingOutput.setAdapter(new ArrayAdapter<String>(this, R.layout.custom_list_view, output2 ));
return;
}
答案 0 :(得分:0)
听起来你需要设置一个可以用onclicklistener执行的runnable。 IE用户在IP地址中键入,单击按钮。然后它会刷新您的视图以显示新项目。