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

리스트뷰 관련하여 질문드립니다!

0 추천
안녕하세요.

제가 쌩초보인지라 정말 기초적인 질문좀 드릴께요. 구체적으로 알려주시면 감사하겠습니다.

리스트뷰를 실습중에 생긴 문제입니다. 제가 첨부한 소스를 실행시켜보면 리스트의 각 항목을

클릭하였을 시에 자기 '자신의 값'을 호출합니다. 하지만 저는 '자신의 값'이 아닌 제가 만든 텍스트나

이미지를 호출하고 싶습니다. 대략적인 제 생각은 케이스문을 쓰는 것인데 이게 맞는것인지도 모르겠네요.

많은 조언 부탁드립니다. 가능하면 구체적으로 부탁드려요. ㅠ 감사합니다

======================    소스코드=======================================

                                                                         -     ItemView.java    -

package com.example.listviewactivity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class ItemView extends Activity {
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.itemview);
  Intent intent = getIntent();
  String itext = intent.getStringExtra("itemtext");
  TextView tx1 = (TextView) findViewById(R.id.text01);
  tx1.setText(itext);

 }
}

===================================================

                                                              -      ListViewActivity.java      -

package com.example.listviewactivity;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class ListViewActivity  extends ListActivity  {

  static final String[] COUNTRIES = new String[] {
      "Afghanistan", "Albania", "Algeria"
    };
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<String>(this, R.layout.listviewmain, COUNTRIES));

   ListView lv = getListView();
     lv.setTextFilterEnabled(true);

   lv.setOnItemClickListener(new OnItemClickListener() {
  @Override
     public void onItemClick(AdapterView<?> parent, View view,
         int position, long id) {
   
   Intent intent = new Intent(ListViewActivity.this,
     ItemView.class);
   intent.putExtra("itemtext", ((TextView)view).getText());
   startActivity(intent);
/**
   Toast.makeText(getApplicationContext(), ((TextView)view).getText(),
           Toast.LENGTH_SHORT).show();
**/
   
     }

   });
 }

}

==========================================================

          * 레이아웃이랑 벨류 xml파일은 생략하겠습니다.
안드로이드로봇 (120 포인트) 님이 2014년 8월 27일 질문

1개의 답변

0 추천
Intent intent = new Intent(ListViewActivity.this,
ItemView.class);
intent.putExtra("itemtext", COUNTRIES[position]);
startActivity(intent);
aucd29 (218,390 포인트) 님이 2014년 8월 27일 답변
와 ~감사합니다. countries[position]을 쓰니까 itemtext값이 인덱스값으로 넘어오는군요.. 저는 ItemView.java  에서 temtext값을 for문을 돌려서 .length 값을 따오려했는데 잘 안됬었거든요.ㅜ 그럼 ItemView.java에서 어떻게 해줘야 각 항목마다 제가 원하는 텍스트를 출력할수있을까요. 방법은 여러가지인거같은데 감이오질 않네요
yjghjghjtyiyjkhip
...