안녕하세요 ListView와 AutoComplete를 이용해
전화번호부를 만들고 싶은데요 ListView와 AutoComplete의 한줄이 겹쳐 자꾸 출력이 안되네요 ㅠㅠ
도와주세요!!
소스코드입니다.
package com.Gjcam;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class Phone extends Activity {
private AutoCompleteTextView autoComplete;
private ArrayList<MyItem> arItem;
private ArrayAdapter<MyItem> MyAdapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone);
autoComplete = (AutoCompleteTextView) findViewById(R.id.autoComplete);
// 데이터를 만듬(ac220v)
arItem = new ArrayList<MyItem>();
MyItem mi;
mi = new MyItem(R.drawable.icon, "경영평가실", "054-770-2843");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "경영평가실", "054-770-2884");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "산업경영대학원", "054-746-9913");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "산업경영대학원", "054-746-9933");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "산업경영대학원", "054-748-1849");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "산업경영대학원", "054-772-5134");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "산업경영대학원", "054-772-4041");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "산업경영대학원", "054-745-8484");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "천마총(매표소)", "054-743-1925");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "무열왕릉(매표소)", "054-772-4531");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "신라오릉(매표소)", "054-772-6903");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "문화재과(1)", "054-779-6061");
arItem.add(mi);
mi = new MyItem(R.drawable.icon, "문화재과(2)", "054-779-6063");
arItem.add(mi);
//////////////////////////겹치는것 같다고 생각되는 부분//////////////////////////////////////
// 어댑터를 만듬
MyListAdapter MyAdapter1 = new MyListAdapter(this, R.layout.call,
arItem);
ListView MyList;
MyList = (ListView) findViewById(R.id.phonelist);
// 어댑터와 데이터를 연결해서 원하는 리스트뷰에 뿌리게됨
MyList.setAdapter(MyAdapter1);
ArrayAdapter<MyItem> MyAdapter = new ArrayAdapter<MyItem>(this,
android.R.layout.simple_dropdown_item_1line, arItem);
autoComplete.setAdapter(MyAdapter);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 리스트 뷰에 출력할 항목
class MyItem {
MyItem(int aIcon, String aName, String aCall) {
Name = aName;// 이름
Call = aCall;// 전화번호
}
String Call; // 전화번호
String Name; // 이름
}
// 어댑터를 커스터마이징 해야됨
class MyListAdapter extends BaseAdapter {
Context maincon;
LayoutInflater Inflater;
ArrayList<MyItem> arSrc;
int layout;
// 생성자
public MyListAdapter(Context context, int alayout,
ArrayList<MyItem> aarSrc) {
maincon = context;
// 생성시 인플레이트 준비를 미리해둠
Inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
arSrc = aarSrc;
layout = alayout;// alayout은 메인에서보면 R.layout.icontext임 int타입이여서
// 이런식으로도 가능
}
// 추상메소드를 구현해야됨
@Override
public int getCount() {// getCount는 데이터의 사이즈를 리턴하면됨
// TODO Auto-generated method stub
return arSrc.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return arSrc.get(position).Name;// getItem은 그 position의 값을 리턴하면됨
}
// ////////
public Object getItem2(int position) {
return arSrc.get(position).Call;
}
// ////////////
@Override
public long getItemId(int position) {// getItemId는 position을 리턴해주면됨
// TODO Auto-generated method stub
return position;
}
@Override
// 이 부분은 리스트 각항목 하나하나를 만드는 부분임
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final int pos = position;
// 첫번째는 convertView가 null이여서 inflate를 통해서
// 마지막인자는 Whether the inflated hierarchy should be attached to the
// root parameter?
// 해석 못했음
if (convertView == null) {// layout은 R.layout.icontext parent는 뷰그룹인
// 리스트뷰를 뜻함
convertView = Inflater.inflate(layout, parent, false);
}
// 이미지뷰를 세팅하고
// 텍스브튜도 세팅a
TextView txt = (TextView) convertView.findViewById(R.id.text);
txt.setText(arSrc.get(position).Name);
// 버튼도 세팅함
Button btn = (Button) convertView.findViewById(R.id.btn);// 전화걸기
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String str = arSrc.get(pos).Name + "에게 전화를 겁니다.";
String p = arSrc.get(pos).Call;
Toast.makeText(maincon, str, Toast.LENGTH_SHORT).show();
// 전화거는 부분
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + p));
startActivity(intent);
}
});
return convertView;// 위 과정이 리스트뷰에 getCount만큼 반복됨
}
}
}
소스코드입니다.




"ListView와 AutoComplete의 한줄이 겹쳐 자꾸 출력"
이게 무슨 말씀인지 이해가 안가요;
두개 뷰를 중첩해서 놓으신건지....