커스텀 리스트 뷰에서 아이템을 클릭하면 각 해당되는 액티비티로 이동하려고 코딩을 하고있는데,
오류는 뜨지 않고 앱을 실행해서 아이템을 클릭해보면 앱이 중지됩니다.. manifest에 activity 추가도 했는데 왜 안되는지 모르겠네요
로그캣 에러는 06-09 20:10:22.949 21251-21251/? E/Zygote: isWhitelistProcess - Process is Whitelisted
06-09 20:10:22.949 21251-21251/? E/libpersona: scanKnoxPersonas Couldn't open the File - /data/system/users/0/personalist.xml - No such file or directory 이렇게 뜹니다.
로그캣 경고는 06-09 20:10:22.951 21251-21251/? W/SELinux: SELinux selinux_android_compute_policy_index : Policy Index[2], Con:u:r:zygote:s0 RAM:SEPF_SM-G950N_8.0.0_0005, [-1 -1 -1 -1 0 1]
06-09 20:10:25.507 21251-21251/com.example.jonghne.inhabackdoor W/zygote64: Current dex file has more than one class in it. Calling RetransformClasses on this class might fail if no transformations are applied to it!
이렇게 뜹니다.
아래 코딩한 거는 글자 수 제한 때문에 import나 package부분은 제외하고 아이템부분도 3개로 줄여서 올렸습니다. 프로그램 상에서는 에러가 뜨지않는데 어떤 부분때문인걸까요 제발 살려주세요
(리스트뷰파일)
public class kor_korlistviewActivity {
private Drawable icon;
private String title;
private String desc;
public void setIcon(Drawable icon) {
this.icon = icon;
}
public void setTitle(String title) {
this.title = title;
}
public void setDesc(String desc) {
this.desc = desc;
}
public Drawable getIcon() {
return this.icon;
}
public String getTitle() {
return this.title;
}
public String getDesc() {
return this.desc;
}
}
----------------------------------------------------------------------------
(어댑터파일)
public class kor_korlistviewAdapter extends BaseAdapter {
private ArrayList<kor_korlistviewActivity> listviewItemList = new ArrayList<kor_korlistviewActivity>(); // 어뎁터에 추가된 데이터를 저장하기위한 arraylist
public kor_korlistviewAdapter(){ //어뎁터의 생성자
}
@Override
public int getCount() { //어뎁터에 사용되는 데이터의 개수를 리턴 (필수구현)
return listviewItemList.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) { // position에 위치한 데이터를 화면에 출력하는데 사용될 view를 리턴(필수)
final int pos = position;
final Context context = parent.getContext();
if(convertView == null){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.kor_listview, parent, false); // kor_listview 의 layout을 inflate하여 convertview를 참조획득한다.
}
kor_korlistviewActivity listViewItem = listviewItemList.get(position); //Data Set(listViewItemList)에서 position에 위치한 데이터 참조 획득
ImageView iconImageView = (ImageView)convertView.findViewById(R.id.gasibushiview);
TextView titleTextview = (TextView) convertView.findViewById(R.id.gasibushiText1);
TextView descTextview = (TextView) convertView.findViewById(R.id.gasibushiText2);
//아이템 내 각 위젯에 데이터 반영
iconImageView.setImageDrawable(listViewItem.getIcon());
titleTextview.setText(listViewItem.getTitle());
descTextview.setText(listViewItem.getDesc());
return convertView;
}
@Override
public Object getItem(int position) {
return listviewItemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
//아이템 데이터 추가를 위한 함수
public void addItem(Drawable icon, String title, String desc){
kor_korlistviewActivity item= new kor_korlistviewActivity();
item.setIcon(icon);
item.setTitle(title);
item.setDesc(desc);
listviewItemList.add(item);
}
}
(리스트뷰의 데이터와 이벤트 처리파일)
public class rice_korActivity extends AppCompatActivity {
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
setContentView(R.layout.kor_screen);
final ListView listView;
kor_korlistviewAdapter adapter;
adapter = new kor_korlistviewAdapter();
listView =(ListView)findViewById(R.id.korlistview);
listView.setAdapter(adapter);
adapter.addItem(ContextCompat.getDrawable(this, R.drawable.rice_kor_korgasibushi),"가시버시","추후 작업");
adapter.addItem(ContextCompat.getDrawable(this, R.drawable.rice_kor_korgungjungbossam),"궁중보쌈","추후 작업");
adapter.addItem(ContextCompat.getDrawable(this, R.drawable.rice_kor_korbbodaeng),"뽀댕이","추후 작업");
listView.setOnItemClickListener( new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==0){
Intent intent = new Intent(rice_korActivity.this, gasiActivity.class);
startActivity(intent);
}
}
}
);
}
}