2014-03-13 6 views
0

목록보기의 파일에 저장된 연락처 정보를 보여주고 싶습니다. 각 연락처를 같은 장소에 모두 표시하지 않고 별도의 셀에 표시하고 싶습니다. 모두 연락처가 목록보기의 단일 셀에 표시됩니다. 특수 문자를 사용하여 연락처 정보의 끝을 확인했습니다.안드로이드의 목록보기에 showstrings을 표시하는 방법

public void show_contacts() 
{ 

    final ListView listview = (ListView) findViewById(R.id.listview); 
    final ArrayList<String> list = new ArrayList<String>(); 
    final ArrayAdapter adapter = new ArrayAdapter(this, 
       android.R.layout.simple_list_item_1, list); 
    String data_read=""; 
    String FILENAME = "myfile.txt"; 
    StringBuffer fileContent = new StringBuffer(""); 

     FileInputStream fis = null; 
     String s1=""; 
     try { 

      fis = openFileInput("myfile.txt"); 

      byte[] buffer = new byte[1]; 

      while (fis.read(buffer) != -1) { 


       if(s1.endsWith(".")) 
       { 
        data_read=fileContent.toString(); 
        list.add(data_read); 
       } 
       else 
        s1+=buffer.toString(); 
       fileContent.append(new String(buffer)); 
      } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

      data_read=fileContent.toString(); 
      list.add(data_read); 
    listview.setAdapter(adapter); 
} 



    public void Write_to_file(String cName2,String cNumber2) 
    { 
     String string=cName2+"--"+cNumber2; 
     String FILENAME="myfile.txt"; 
     FileOutputStream fos = null; 
     Context c=this.getBaseContext(); 

     try { 
       String s="."; 
       fos = c.openFileOutput(FILENAME, Context.MODE_APPEND); 
       fos.write(string.getBytes()); 
       fos.write(s.getBytes()); 
       fos.close(); 
      } 
      catch (Exception e) { 
       e.printStackTrace(); 
      } 

    } 

답변

0

내 소원은 당신이 그냥

public class Sample { 
private String listitem1; 
private String listitem2; 

public String getListitem1() { 
    return listitem1; 
} 
public void setListitem1(String listitem1) { 
    this.listitem1 = listitem1; 
} 
public String getListitem2() { 
    return listitem2; 
} 
public void setListitem2(String listitem2) { 
    this.listitem2 = listitem2; 
} 
} 
같은 사용자 정의 클래스에 연락처 텍스트 파일로 연락처 이름을 쓰지 않는다입니다 : 사전 :)의 덕분에 여기

내 코드입니다

그리고 당신의 프로그램이 사용자 정의 어댑터를 사용 ...

public class CustomAdapter extends ArrayAdapter<Sample> { 

public ArrayList<Sample> mlist; 
public Context context; 
public LayoutInflater inflater; 

public CustomAdapter(Context context, int resource, ArrayList<Sample> mlist) { 
    super(context, resource); 
    this.mlist = mlist; 
    this.context = context; 
    inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public int getPosition(Sample item) { 
    return super.getPosition(item); 
} 

@Override 
public Sample getItem(int position) { 
    return mlist.get(position); 
} 

@Override 
public int getCount() { 
    return mlist.size(); 
} 

@Override 
public long getItemId(int position) { 
    return super.getItemId(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    convertView = inflater.inflate(R.layout.listitem, null); 
    TextView text1 = (TextView) convertView.findViewById(R.id.item1); 
    TextView text2 = (TextView) convertView.findViewById(R.id.item2); 
    text1.setText(mlist.get(position).getListitem1()); 
    text2.setText(mlist.get(position).getListitem2());  
    return convertView; 
} 

    } 

그리고 당신의 활동 ....

private ArrayList<Sample> mListItems; 
private PullToRefreshListView mPullRefreshListView; 
private CustomAdapter mAdapter; 

private String[] mStrings = { "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", 
     "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", 
     "Allgauer Emmentaler", "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi", 
     "Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre", 
     "Allgauer Emmentaler" };  

    @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_ptr_list); 
    mListItems= new ArrayList<Sample>(); 

    mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list); 
    Calculation(); 

    mPullRefreshListView.setAdapter(mAdapter); 
    } 

    private void Calculation() { 
    for(int i=0;i<mStrings.length;i++) 
    { 
     Sample sample = new Sample(); 
     sample.setListitem1(mStrings[i]); 
     sample.setListitem2(mStrings[i]); 
     mListItems.add(sample); 
    } 


} 

이 코드를 사용하고 그냥 연락처 이름과 위의 샘플의 번호로 대체 ..

관련 문제