如何打开listView中的文件内容?

时间:2017-06-04 17:50:35

标签: java android file listview inputstream

因此,我设法列出我保存的所有文件并将文本编辑为listview,并且工作正常。我现在想要的是将它们打开到编辑文本字段中。下面有我的代码。我怎样才能做到这一点 ?我希望你能帮助我。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.MimeTypeMap;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.widget.TextView;

import android.app.ListActivity;

public class Tab1 extends Activity
{

    private ToggleButton toggleButton1;
    private ImageView imageViewOn;
    private TextView textReceive;
    private Button refresh;
    EditText txtData;
    int data_block =100;
    private long lastTime = 0;

    private List<String> myList;
    private File file;
    final Handler handler = new Handler() {
    public void handleMessage(Message msg)
        {
            String data = msg.getData().getString("receivedData");
            // Affichage de data
            long t = System.currentTimeMillis();
            if(t-lastTime > 100)
            {

                textReceive.append("\n");
                lastTime = System.currentTimeMillis();
            }
            textReceive.append(data);
        }
    };
       final Handler handlerStatus = new Handler() {
        public void handleMessage(Message msg)
        {
            int co = msg.arg1;
            if(co == 1) {
            } else if(co == 2) {
            }
        }
    };


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab1);
       ListView listView = (ListView) findViewById(R.id.listView1);
          myList = new ArrayList<String>();

        File directory = Environment.getExternalStorageDirectory();
        file = new File(directory + "/Notes");
        final File list[] = file.listFiles();

        for (int i = 0; i < list.length; i++) {
            myList.add(list[i].getName());

        }
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, myList);
        listView.setAdapter(adapter); //Set all the file in the list.

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {


            }
        }); 
            }


}

1 个答案:

答案 0 :(得分:0)

在android文档中研究View.setTag(string)方法。然后在你的适配器类中使用view.setTag(param) ...用你要返回的视图名称替换视图,按文件路径替换Param ... 接下来,在onItemClick方法调用view.getTag()中。这将返回文件路径。然后使用其路径打开文件。我希望你明白这一点。