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

BaseAdapter를 다른 java페이지로 빼서 사용하는 방법 좀...

0 추천
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    private void openList(){
          list1 = (ListView) findViewById(R.id.main_list1);
          contacts1 = new ArrayList<MainListView1>();
          contacts1.add(new MainListView1 ("","");
          adapter1 = new ContactsAdapter(contacts1);
          list1.setAdapter(adapter1);
          list1.setOnItemClickListener(mItemClickListener1);
          list1.setOverScrollMode(View.OVER_SCROLL_NEVER);
    }

    protected void onResume() {
  
  this.overridePendingTransition(0, 0);
  super.onResume();
  
  Timer timer = new Timer();
  timer.schedule(myTask, 10, 1000);
  
 }
    
    class ContactsAdapter2 extends BaseAdapter {
      ///
   }
     
}

지금 이런 구조로 하나의 java 파일이 이뤄져있는데

하나의 Activity 자바 파일 안에 각종 소스를 다 넣으니까, 소스가 너무 길어져서 수정이 좀 힘들더라구요.

어제 구글링한 소스 짜깁기 하다보니, 외부의 다른 java 파일에 있는 함수(?) 같은것도 사용이 가능한것 같던데

위 소스 구조 같은 경우, class ContactsAdapter2 extends BaseAdapter {} 같은걸 통째로

다른 java 파일로 빼고, 기존 소스들 거의 수정 안하고 편하게 사용하려면

어떻게 하면 되나요?

혹시 public class ContactsAdapter2 이런식으로 앞에 public만 붙이고 다른 파일에 넣어두면

마치 같은 페이지 안에 있는것처럼 작동되나요?

개님의습성 (2,500 포인트) 님이 2013년 6월 14일 질문

4개의 답변

0 추천
커스텀 어뎁터를 검색해보셔요....
  (11,920 포인트) 님이 2013년 6월 14일 답변
0 추천

논외 얘기긴 한데..

소스 복사해서 줄같은거 안맞을때

"ctrl + shift + F" 누르면 아름답게 맞춰진답니다

익명사용자 님이 2013년 6월 14일 답변
0 추천
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
     
    private void openList(){
          list1 = (ListView) findViewById(R.id.main_list1);
          contacts1 = new ArrayList<MainListView1>();
          contacts1.add(new MainListView1 ("","");
          adapter1 = new ContactsAdapter(넣어줄꺼1,넣어줄꺼2,등등);
          list1.setAdapter(adapter1);
          list1.setOnItemClickListener(mItemClickListener1);
          list1.setOverScrollMode(View.OVER_SCROLL_NEVER);
    }
 
    protected void onResume() {
   
  this.overridePendingTransition(0, 0);
  super.onResume();
   
  Timer timer = new Timer();
  timer.schedule(myTask, 10, 1000);
   
 }
     
 
      
}
 
프로젝트에서 프로젝트생성하셔서
똑같은 클레스를 만들면 되요/
이렇게 하면 ContactsAdapter2빨간줄이 뜰껀데 마우스 올려보면 나오는거 눌으시면 자동으로 함수생성됩니다
    class ContactsAdapter2 extends BaseAdapter {
    public     ContactsAdapter2(가지고 올것들1,가지고 올것들2,등등){
     }
   }
 
값을 가져올때는
가지고 올 정보에는 데이터 등등이 있것죠.
 

 

왈라뽕다 (1,170 포인트) 님이 2013년 6월 14일 답변
0 추천
adapter에서 main activity의 뷰를 자주접근한다면 그냥 메인엑티비티 내부에 두는게낫구요,

한정적으로 접근한다면 외부에 떨어뜨려놓는것도 괜찮죠.

그냥 말그대로 자바파일하나 만들고 class ContactAdapter2로 생성하시면 될듯하네요.

필요한 변수나 객체들은 생성자를 통해 받아서 제어하시면되구요.

 

예를들어서 리스트뷰를 클릭하면 선택한 행의 번호를 텍스트에 뿌려주고싶다 하면

메인액티비티의 텍스트뷰를 외부 adapter에 객체로 던져주고 adapter내부에서 텍스트뷰를 컨트롤하심됩니다.
기초개발자 (24,060 포인트) 님이 2013년 6월 14일 답변
...