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

커스텀 리스트뷰에서 아이템 클릭 시 액티비티 이동하는 코드 질문입니다.

0 추천

커스텀 리스트 뷰에서 아이템을 클릭하면 각 해당되는 액티비티로 이동하려고 코딩을 하고있는데, 

오류는 뜨지 않고 앱을 실행해서 아이템을 클릭해보면 앱이 중지됩니다..  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);
                        }
                    }
                }
        );
    }

}
안드로이드 커스텀 리스트뷰 액티비티 전환 질문 님이 2018년 6월 9일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...