디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

자바랑 안드로이드 관련 코드 질문이요..showdialog() 도와주세요

S1000RR갤로그로 이동합니다. 2012.12.02 02:28:39
조회 130 추천 0 댓글 22

형아들 나좀 도와줘ㅠㅠ

어플이 실행은 되는데 특정 코드에 접근하면 에러가 뜨면서 어플이 종료돼요;;

어플 구조가 어떻게 되잇냐하면..MainActivity.java, CustomAdapter.java, CustomDialog.java, Builder.java(커스텀대화상자 생성시 필요한거야)

CustomAdapter는 MainActivity에 커스텀리스트뷰가 있어서 만들어놓은거야...

커스텀리스트뷰의 리스트아이템에 텍스트뷰 여러개랑 체크박스 같은걸 여러개 넣어놧거든..대충 구조는 이래..

내가 원하는 어플실행모습은..커스텀리스트뷰에서 리스트아이템을 클릭하면 그 리스트아이템에 대한 커스텀대화상자를 띄우고

대화상자에 라디오 버튼 여러개가 잇는데 설정한 후에 확인버튼 누르면 설정된 값을 다른 리스트뷰에 받아와서 리스트아이템으로 추가 시키고 싶거든..

그런데..내가 리스트뷰의 리스트아이템 클릭 이벤트를 MainActivity.java가 아닌 CustomAdapter.java 에 만들어놧어..

그래서 CustomAdapter.java의 함수안에다 MainActivity의 객체 ma를 하나 만들고 ma로 여러방법을 시도해봣는데...

 ma.showDialog(ma.CUSTOM_DIALOG);  // ma.getParent().showDialog(CUSTOM_DIALOG); 요런거

그런데 안되서 이번엔 MainActivity.java 안에 public void openDialog(){MainActivity.this.showDialog(CUSTOM_DIALOG); }; 이거 만들고

CustomAdapter.java의 함수안에서 ma.openDialog(); 를 넣어봣는데..이것두 어플 실행은 되는데 리스트 클릭하면 에러뜨면서 종료ㅠㅠ;

내 짧은 지식으론 문제가 먼지 도저히 모르겟어ㅠㅠ

도와줘 형아들..

CustomAdapter.java 파일안의  함수 안에서 대화상자띄우는 코드를 어떻게 해야되?

코드 간단히 올릴게...MainActivity.java
import 문 여러개....
public class MainActivity extends Activity {
 
 public static final int CUSTOM_DIALOG  = 1;
 
 private ListView mLvProduct;
 private ArrayList<ListInfo> mProductList;
 private CustomAdapter mAdapter;
 

    @Override
    public void onCreate(Bundle savedInstanceState) {
      
        mProductList = new ArrayList<ListInfo>();
  mAdapter = new CustomAdapter(this, R.layout.list_row_coffee, mProductList);
  mLvProduct.setAdapter(mAdapter);
 
  setListView();    
    } 
  
    @SuppressWarnings("deprecation")

 public void openDialog(){
     MainActivity.this.showDialog(CUSTOM_DIALOG);  // 이코드가 이 파일안의 버튼 클릭이벤트의 함수 안에 넣으면잘돼
    };
  private void setListView()
 {     
    //리스트 뷰 셋팅 코드
 }   
    //커스텀다이얼로그 생성 코드
    public Dialog onCreateDialog(int dialogId) {
     Dialog dialog = null;
     switch (dialogId) {
      case CUSTOM_DIALOG :
    CustomDialog.Builder customBuilder = new
    CustomDialog.Builder(MainActivity.this);
    customBuilder.setTitle("Custom Dialog")
     .setMessage("짜잉나")
     .setNegativeButton("Cancel", new DialogInterface.Listener() {
      public void (DialogInterface dialog, int which) {
       MainActivity.this
       .dismissDialog(CUSTOM_DIALOG);
      }
     })
     .setPositiveButton("Confirm", new DialogInterface.Listener() {
      public void (DialogInterface dialog, int which) {
       dialog.dismiss();
      }
     });
             dialog = customBuilder.create();
       break;
          }
     return dialog;
    }
     
    }
}
////////////////////////////////////////////////////////////////////////////////////////////////////

CustomAdapter.java   
패키지
임포트문

public class CustomAdapter extends ArrayAdapter<ListInfo> implements Listener
{  
 private Context mContext;
 private int mResource;
 private ArrayList<ListInfo> mList;
 private LayoutInflater mInflater;

 public CustomAdapter(Context context, int layoutResource, ArrayList<ListInfo> objects)
 {
  super(context, layoutResource, objects);
  this.mContext = context;
  this.mResource = layoutResource;
  this.mList = objects;
  this.mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 }
 
 @Override
 public int getCount(){
  return mList.size();
 } 
 @Override
 public ListInfo getItem(int position){
  return mList.get(position);
 } 
 @Override
 public int getPosition(ListInfo item){
  return mList.indexOf(item);
 }
 @Override
 public View getView(int position, View convertView, ViewGroup parent)
 {
  ListInfo list = mList.get(position);
  if(convertView == null)
  {
   convertView = mInflater.inflate(mResource, null);
  }
  if(list != null)
  {
   TextView tvProductName = (TextView) convertView.findViewById(R.id.list_view_row_coffee_name);
      
   tvProductName.setText(list.get_product_name());
  
  }  
  // position을 tag로 저장한다.
  convertView.setTag(position);
  // 만들어진 뷰(row)에 클릭이벤트를 등록한다. 이벤트의 처리는  ()에서 한다.
  convertView.setListener(this);
  return convertView;
 }
 
 public void (View v)
 {
  //위에서 저장한 tag(position)을 꺼내온다.
  int position = (Integer) v.getTag();.

  CheckBox chk = (CheckBox) v.findViewById(R.id.list_row_check);
  chk.setChecked(true);
  Toast.makeText(this.getContext(),"주문버튼클릭",Toast.LENGTH_SHORT).show();
 
  MainActivity ma = new MainActivity();
  //this.getContext();
  //ma.showDialog(ma.CUSTOM_DIALOG);
  ma.openDialog();
  //ma.getParent().showDialog(CUSTOM_DIALOG);
 }
}





추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45341 65
2870819 나님 보물창고 발겨어언!!!!!!!!! ♥냥덩이♥갤로그로 이동합니다. 14:57 1 0
2870818 불법 프로그램 사용하는 학원 이거 뭐임 프갤러(218.148) 14:10 15 0
2870817 뿡야하구푼데 자꾸 끙야 나오려행.. ♥냥덩이♥갤로그로 이동합니다. 14:09 10 0
2870816 어떤 새끼가 ai 10배 생산성 물타기 했는진 모르겠는데 [2] 프갤러(218.154) 14:02 20 0
2870815 크래프톤 정글 게임랩 4기 / 게임테크랩 2기 (~7.18) 프갤러(175.223) 14:02 19 0
2870814 파이썬 쓸꺼면 pylance 사용해서 써야함 ㅆㅇㅆ(124.216) 13:59 17 0
2870813 파이썬 좀 짜증난다. [2] 프갤러(218.154) 13:58 22 0
2870812 게임쪽이랑 서버쪽 밴엔드가 많이 다르긴해 [2] ㅆㅇㅆ(124.216) 13:48 24 0
2870810 더럽고 치사해서 때려치기 전에 해봐야할 것 프갤러(218.154) 13:44 10 0
2870809 게임회사 개발자 출신들은 별로 잘 인정 안해줌? [1] 프갤러(110.13) 13:42 25 0
2870808 자기가 말한거 다 되는데 자기가 깜빡해서 말 안한걸 [6] ㅆㅇㅆ(124.216) 13:37 31 0
2870807 chatgpt 이새끼 진짜 존나 빡대가리네 프갤러(61.72) 13:24 22 0
2870806 스윗 40 50 야옹아재는 못하는거 프갤러(211.235) 13:15 18 0
2870805 115 ♥냥덩이♥갤로그로 이동합니다. 13:00 12 0
2870804 잼각하 25마넌 감사합니다 꾸벅~~~ 프갤러(112.144) 12:54 15 1
2870803 하드웨어 속도체감 [2] ♥냥덩이♥갤로그로 이동합니다. 12:43 31 0
2870802 [대한민국] 많은 사람들이 트럼프를 지지하는 이유 프갤러(121.172) 12:36 22 0
2870800 정좌불능증 재현갤로그로 이동합니다. 12:06 13 0
2870799 자바 책 추천좀 프갤러(211.54) 12:05 11 0
2870797 자료구조 책은 머 봐야됨? [2] 프갤러(49.167) 11:01 39 0
2870796 나님 기분 ㄱㅆㅅㅌㅊ !! ♥냥덩이♥갤로그로 이동합니다. 10:59 19 0
2870795 윅스같이 홈피만드는 서비스들 ai 땜에 ㅇㅇ(118.235) 10:55 28 0
2870794 Sm은 프로그램 다 파악해노니 ㅇㅇ(211.235) 10:44 27 0
2870792 드럽고 치사해서 때려칠까? [1] 프갤러(59.16) 10:23 30 1
2870791 짱깨폭염 ㅅㅂ 짱깨들이 더 날씨좋누 뒷통수한방(1.213) 10:03 16 0
2870790 나 누구랑 키배떳는데 ㅇㅇ갤로그로 이동합니다. 09:50 22 0
2870789 "1691명 유혹해 성관계·불법 촬영"…여장남자에 발칵 발명도둑잡기(211.246) 09:19 27 0
2870788 나님 목표 ㅆㅅㅌㅊ !! [1] ♥냥덩이♥갤로그로 이동합니다. 09:18 35 0
2870787 내 시급이 이런 식으로 정해진다니... 황당하실 겁니다 발명도둑잡기(211.246) 09:10 21 0
2870786 尹 재수감되는 3.7평 독방 발명도둑잡기(211.246) 09:04 20 0
2870785 정권교체되고 냥덩이 [2] 발명도둑잡기(211.246) 08:58 36 0
2870784 노트북 시장 근황 [1] 발명도둑잡기(211.246) 08:52 33 0
2870783 축하합니다 발명도둑잡기(211.246) 08:49 17 0
2870782 당뇨가 오는 과정 발명도둑잡기(211.246) 08:47 25 0
2870780 이렇게 보니 별로 더러워보이지 않네..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:21 28 0
2870779 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:09 18 0
2870778 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:06 20 0
2870777 dos에서 x윈도우 Xappeal 발명도둑잡기(211.246) 07:56 13 0
2870775 요즘 존나 후회됨 ㅇㅇ(211.234) 07:31 58 0
2870773 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 06:53 24 0
2870769 요즘 인터넷에서 자주 보이는 간첩 특징 정리.txt [1] 야옹아저씨갤로그로 이동합니다. 06:09 61 0
2870764 Skt 미친것들 전화기가 꺼져있어 넥도리아(175.196) 03:57 42 0
2870763 재구축 인터넷 망 넥도리아(175.196) 03:47 39 0
2870762 나 폰 2개 폰 액정분해하다가 깨졌어요. 넥도리아(175.196) 03:39 41 0
2870760 1인개발자할건데 뭐배우면 좋나요? [4] 프갤러(1.238) 03:32 70 0
2870758 윤석열 구속 확정 [2] 야옹아저씨갤로그로 이동합니다. 02:56 60 1
2870756 내일 휴가인 아스카 [2] 아스카영원히사랑해갤로그로 이동합니다. 02:37 51 0
2870750 경찰 왜 욕하는거임 뒷통수한방(1.213) 00:56 35 1
2870749 C# bool형 대소문자 [3] ㅇㅇ갤로그로 이동합니다. 07.09 66 0
뉴스 “군필 아니었어?” 조규성, 장발 ‘싹둑’…파격 변신에 ‘눈길’ 디시트렌드 14:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2