마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰에 파일목록 보여주고 터치누르면 내용이 안떠요 ㅠㅠ

0 추천
package com.example.memo;

import java.io.File;
import java.io.FilenameFilter;
import java.util.*;
import android.app.Activity;
import android.content.*;
import android.os.Bundle;
import android.os.Environment;
import android.widget.*;
import android.widget.AdapterView.OnItemClickListener;
import android.view.*;

public class MainActivity extends Activity {
 private static final int EDIT_ACT = 0;
 ListView listview;
 ArrayList<String> list1, list2, list3;
 ArrayAdapter<String> adapter;
 Intent intent;
 

 class Memo implements FilenameFilter{
  
     @Override
     public boolean accept(File dir, String filename) {
              return (filename.endsWith(".txt"));
     }
   
 }
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  setTitle("메모장");
  
  list1 = new ArrayList<String>();
  list2 = new ArrayList<String>();
    
  
  
  adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list1); // 리스트에 내용 저장
  adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list2); // 리스트에 제목 저장
  
  ReadSDCard(); // 리스트뷰에 파일목록 뿌려줌
  
  listview=(ListView) findViewById(R.id.list);
  listview.setAdapter(adapter);
  
  
  
  listview.setOnItemClickListener(new OnItemClickListener() {

   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    // TODO Auto-generated method stub
    intent = new Intent(MainActivity.this, Sub2_MainActivity.class); // 현재 엑티비티에서 su2로 이동
    intent.putExtra("data", list1.get(position)); // su2에 내용 뿌려주기
    intent.putExtra("str", list2.get(position)); // su2에 제목 뿌려주기
    startActivity(intent);
   }  
   
  });
 }
 
 public void onClick(View v){
  switch(v.getId()) {
  case R.id.btn_addition:
   Toast.makeText(this, "기록 해주세요.", Toast.LENGTH_SHORT).show();
   intent = new Intent(this, Sub1_MainActivity.class);
   startActivityForResult(intent, 0);
   break;
  case R.id.btn_del:
   Toast.makeText(this, "소스 없습니다.", Toast.LENGTH_SHORT).show();
   break;
  case R.id.btn_exit1:
   finish();
   break;
  
  }
 }
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  // Handle action bar item clicks here. The action bar will
  // automatically handle clicks on the Home/Up button, so long
  // as you specify a parent activity in AndroidManifest.xml.
  int id = item.getItemId();
  if (id == R.id.action_settings) {
   return true;
  }
  return super.onOptionsItemSelected(item);
 }
 
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     switch(requestCode){
     case EDIT_ACT:
      if(resultCode == RESULT_OK) {
       list1.add(data.getStringExtra("TextIn1").toString()); // 키를 받아 메모내용 불러옴
       list2.add(data.getStringExtra("TextIn2").toString()); // 키를 받아 제목 불러옴
          adapter.notifyDataSetChanged(); // 업데이트 알림
          super.onActivityResult(requestCode, resultCode, data);
      }else if(resultCode == RESULT_CANCELED) {
      }
      break;
      
     }
    }
 public void ReadSDCard() {
  String path = null;
  String ext = Environment.getExternalStorageState();

  
  if(ext.equals(Environment.MEDIA_MOUNTED)) {
            path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/My Memo/";
  }
  else
  {
            path = Environment.MEDIA_UNMOUNTED;
  }
  
  File file1 = new File(path);
  File file2 = new File(path);

  for(File f : file1.listFiles())
  {
   list2.add(f.getName());
   list1.add(f.getName());
  }
 }
}

 

제가 하고싶은건 메인액티비티에서 리스트뷰에 파일목록 터치하면 su2로 이동하면서 작성햇던 내용을 모두 뿌려주고싶은데요...

문제는 public void ReadSDCard() 이거 때문에 제목 보여주고 내용도 제목 뿌려주네요..

list1.add(f.getName()); 없애면 중지 뜹니다.

어떻게하면 따로따로 제목은 제목 내용은 내용으로 보낼수없나요?

public void ReadSDCard() 이거 없으면 정상적으로 다 출력됩니다.

 

어떻게해야 제목과 내용을 다뿌려주게 할 수 없을까요?
성수소년 (550 포인트) 님이 2015년 9월 20일 질문

1개의 답변

0 추천

왜 adapter 객체를 2번 생성 하나요??

원하는 것을 만드실려면

class FileInfo {

public String title;

public String content;

}

ArrayList<FileInfo> list =...

이런 형태로 하시는게 관리 하기 편합니다.

 

카라드레스 (2,910 포인트) 님이 2015년 9월 21일 답변
...