私はアンドロイドが初めてで、誰かがこのような愚かな質問をした場合は申し訳ありません
Listactivty を拡張するアクティビティがあります。リストビューは、最初にロードされたときにデータを正常に表示しています。サーバーからのすべてのファイルとフォルダーが表示されます。しかし、リストビューをクリックすると onListItemClick イベントが呼び出され、サーバーからデータを再度取得しますが、以前のデータにデータを追加しています。私が欲しいのは、ListView がデータを追加せずに最新のデータのみを表示することです。
マイ ListView アクティビティ コード:
public class MainActivity extends ListActivity {
private String urlString="http://xxxxxxxxserver PathXXXXX";
private List<String> item = null;
private List<String> path = null;
private String root="http://xxxxxxxxserver PathXXXXX";
private String result;
private TextView myPath;
static private String pos;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View v= findViewById(R.id.rowtext);
myPath = (TextView)findViewById(R.id.path);
Http_connection f=new Http_connection();
f.execute("");
}
class Http_connection extends AsyncTask<String, Void, Void> {
private Exception exception;
protected Void doInBackground(String... urls)
{
try
{
URL url= new URL(urlString);
HttpURLConnection con=(HttpURLConnection)url.openConnection();
con.setRequestMethod("GET");
con.connect();
int statusCode=con.getResponseCode();
if (statusCode==HttpURLConnection.HTTP_OK){
BufferedReader in= new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
while ((line=in.readLine())!=null)
{
result=result+"\n"+line;
}
in.close();
con.disconnect();
root="AndroidMapper";
runOnUiThread(new Runnable() {
@Override
public void run() {
getDir(urlString);
}
});
}
}
private void getDir(String dirPath)
{
String\[\] r=result.split("/");
myPath.setText("Location: " + urlString);
item = new ArrayList<String>();
path = new ArrayList<String>();
for (int k=0;k<r.length;k++)
{
if (r\[k\].contains("."))
{
item.add(r\[k\]);
}
else
{
item.add(r\[k\]+"/");
}
}
ArrayAdapter<String> fileList =
new ArrayAdapter<String>(MainActivity.this, R.layout.row, item);
setListAdapter(fileList);
}
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
String pos=new String(item.get(position));
if (pos.contains("."))
{
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
else
{
urlString=urlString+pos;
Http_connection f=new Http_connection();
f.execute("");
}