2017-06-04 5 views
0

私はlistviewから保存して編集したすべてのファイルを一覧表示し、正常に動作します。私が今したいのは、それらを編集テキストフィールドに開くことです。下に私のコードがあります。どうやってやるの ?あなたが私を助けることを願っています。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) { 


      } 
     }); 
      } 


} 

答えて

0

View.setTag(string)の方法がアンドロイドのドキュメントに記載されています。次に、アダプタクラスでview.setTag(param)を使用してください。返すビュー名とParamをファイルパスで置き換えてください。 次に、onItemClickメソッドコールview.getTag()にあります。これは、ファイルパスを返します。ファイルを開き、そのパスを使用します。私はあなたがポイントを得たと思います。

+0

申し訳ありませんが、私はポイントを取得していない!もっと説明できますか? –

+0

'setTag()'はlistviewの各ビューにタグまたはメタデータを付加します。このタグまたはメタはユーザーには表示されません。ビューでファイル名を表示しているので、ファイルパスをタグとして各ビューに使用します。 'getTag()'はファイルパスを返します。 –

+0

ありがとう、それは動作しますが、私はString file_name = myList.get(position); ファイルuri =新しいファイル(file、file_name); /// –

関連する問題