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

onItemClick 리스너 관련 질문

0 추천
package com.example.user.project;
 
/**
 * Created by User on 2015-04-14.
 */
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
public class Main_noticeActivity extends Fragment {
 
    ListView listview;
    myAdapter adapter;
    String[] notice = {"공지사항","공지사항1","공지사항2","공지사항3","공지사항4","공지사항5"};
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View noticeview = inflater.inflate(R.layout.main_notice, container,false);
 
        listview=(ListView)noticeview.findViewById(R.id.listView1);
        adapter = new myAdapter();
        listview.setAdapter(adapter);
        return noticeview;
    }
 
    class myAdapter extends BaseAdapter{
        @Override
        public int getCount() {
            return notice.length;
        }
 
        @Override
        public Object getItem(int position) {
            return notice[position];
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TextView view = new TextView(getActivity().getApplicationContext());
            view.setText(notice[position]);
            view.setTextSize(50.0f);
            listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                    // parent는 AdapterView의 속성의 모두 사용 할 수 있다.
                    String notice = (String)parent.getAdapter().getItem(position);
                    Toast.makeText(getActivity().getApplicationContext(), notice, Toast.LENGTH_SHORT).show();
                  
 
 
 
                }
            });
            return view;
        }
    }
 
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
    }
 
}
 
Toast는 띄우는법은 이해했는뎅
리스트 클릭시 다른화면이 뜨면서
그내용을 출력시키고싶은데 어케하는지 좀 알려주십시오
졸업반대학생 (140 포인트) 님이 2015년 5월 5일 질문

1개의 답변

0 추천
다른 화면(Activity)를 만든 다음에 Intent를 이용하시면 됩니다.

onItemClick 메소드 안에 코드를 넣으면 되구요. manifast.xml 파일에 Activity 등록하시길 바랍니다.

예> Intent intent = new Intent(getApplicationContext(), ActivityName.class );

       startActivity(Intent);
랍스타와킹크랩 (1,970 포인트) 님이 2015년 5월 5일 답변
성공은햇는데 리스트에 하나씩 하나씩 다른 페이지가 뜨게 할수는 없을까용?
custom Adapter 구현 시, getItem(position) 포지션 별로 다른 아이템을 가져오게 구현하고, 넣어주는 Item 들의 값에 각 activity로 이동할 정보 즉 Activity.class 정보를 담아서 구현하면 될 것 같습니다.
예 > 예> Intent intent = new Intent(context, 아이템 정보 );

       startActivity(Intent);
...