마스터Q&A
접속유지
가입하기
안드로이드 Q&A
최근 질문
미답변 질문
태그
사용자
질문하기
마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다.
안드로이드펍
에서 운영하고 있습니다. [
사용법
,
운영진
]
인기있는 태그
초보어플개발
(3427)
안드로이드스튜디오
(2664)
안드로이드-초보어플개발
(1333)
안드로이드-스튜디오
(1086)
도와주세요-
(995)
이미지
(970)
listview
(866)
리스트뷰
(844)
오류
(805)
레이아웃
(693)
fragment
(675)
webview
(670)
ListView Toast 예제 문의
0
추천
http://kitesoft.tistory.com/67
상기주소를 예제를 따라하는 도중
2번(ArrayAdapter)까지는 하였습니다.
3번(Toast) 예제 소스코드 입력한 후
실행 했습니다.
2번 실행했을 때와 동일한 에뮬레이터만 나오구,
토스트(Toast)는 뜨지 않습니다.
무엇이 문제인가요?
안드로이드
리스트뷰
세봉아
(
500
포인트)
님이
2016년 1월 6일
질문
Please
log in
or
register
to add a comment.
답변 달기
·
글에 소스 코드 보기 좋게 넣는 법
·
질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
답변이 채택되거나 답변에 댓글이 달리면 이메일로 알려드립니다:
답변이 채택되거나 댓글이 달리면 이메일로 알려드립니다
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면
로그인
하거나 혹은
가입
하세요.
1개의 답변
0
추천
둘중 하나일것 같은데요...
리스트뷰에 리스너를 등록 안하셨던가
아니면 toast로 makeText한 후 show를 호출 안하셨던가..
모나미153
(
17,540
포인트)
님이
2016년 1월 6일
답변
http://kitesoft.tistory.com/67
상기 주소 게시물 대로 코드는 정확히 입력했습니다.
activity_main.xml 이랑
MainActivity.java 말고
다른것도 수정/추가 해줘야 하는건가요?
코드를 봐야 알 것 같습니다.
MainActivity.java 코드
package com.example.listviewtest;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
//대량의 문자열 데이터를 저장할 Arraylist 객체 생성
ArrayList<String> mDatas = new ArrayList<String>();
ListView listview; //ListView 참조변수
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//문자열 데이터 ArrayList에 추가
mDatas.add("KOREA");
mDatas.add("CANADA");
mDatas.add("FRANCE");
mDatas.add("MEXICO");
mDatas.add("POLAND");
mDatas.add("SAUDI ARABIA");
Log.v("Test", " "+mDatas.size());
//ListView가 보여줄 뷰를 만들어내는 Adapter 객체 생성
//ArrayAdapter: 문자열 데이터들을 적절한 view로 1:1로 만들어서 List형태로 ListView에 제공하는 객체
//첫번째 파라미터: Context객체 -> MainActivity가 Context를 상속했기 때문에 this로 제공 가능
//두번째 파라미터: 문자열 데이터를 보여줄 뷰. ListView에 나열되는 하나의 아이템 단위의 뷰 모양
//세번째 파라미터: adapter가 뷰로 만들어줄 대량의 데이터들
//본 예제에서는 문자열만 하나씩 보여주면 되기 때문에 두번째 파라미터의 뷰 모양은 Android 시스템에서 제공하는
//기본 Layout.xml 파일을 사용함.
ArrayAdapter adapter= new ArrayAdapter(this, android.R.layout.simple_list_item_1, mDatas);
listview= (ListView)findViewById(R.id.listview);
listview.setAdapter(adapter); // 위에 만들어진 ListView에 설정: xml에서 'entries' 속성
//ListView의 아이템 하나가 클릭되는 것을 감지하는 Listener객체 생성 (Button의 OnClickListener와 같은 역할)
OnItemClickListener listener= new OnItemClickListener() {
//ListView의 아이템 중 하나가 클릭될 때 호출되는 메소드
//첫번째 파라미터: 클릭된 아이템을 보여주고 있는 AdapterView 객체(여기서는 ListView객체)
//두번째 파라미터: 클릭된 아이템 뷰
//세번째 파라미터: 클릭된 아이템의 위치(ListView이 첫번째 아이템(가장위쪽)부터 차례대로 0,1,2,3...)
//네번째 파라미터: 클릭된 아이템의 아이디(특별한 설정이 없다면 세번째 파라미터인 position과 같은 값)
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//TODO Auto-generated method stub
//클릭된 아이템의 위치를 이용하여 데이터인 문자열을 Toast로 출력
Toast.makeText(MainActivity.this, mDatas.get(position), Toast.LENGTH_SHORT).show();
}
};
}
}
activity_main.xml 코드
<RelativeLayout xmlns:android="
http://schemas.android.com/apk/res/android"
xmlns:tools="
http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="200dp" />
</RelativeLayout>
listview.setOnItemClickListener(listener);
이 줄이 빠졌습니다.
리스트뷰에 리스너를 등록 안하셨네요~~
해결했습니다
감사합니다~
Please
log in
or
register
to add a comment.
...