1

私はアンドロイドが初めてで、誰かがこのような愚かな質問をした場合は申し訳ありません

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("");

        }

http://i.stack.imgur.com/HIEL7.png

4

1 に答える 1