안드로이드 개발 질문/답변
(글 수 45,052)
DB에서 빼온 정보들을 ListView에 넣고 한 라인을 클릭하면
그 라인의 Text를 바꾸고싶은데요...
값을 바꾸고 어떻게 적용시켜야 하는지 해메고 있네요...
소스를 좀 넣어봤는데 Log.d를 활용해서 item이 position에 맞게
클릭되는것은 확인하였는데, 눌린 position의 text를 어떻게 바꿔야할지
바뀐 data에 대해 Activity의 구성품들을 다시 그릴수있는지
조언좀 부탁드립니다~ㅠㅠ
layout xml
<?xml version="1.0" encoding="utf-8" ?>
그 라인의 Text를 바꾸고싶은데요...
값을 바꾸고 어떻게 적용시켜야 하는지 해메고 있네요...
소스를 좀 넣어봤는데 Log.d를 활용해서 item이 position에 맞게
클릭되는것은 확인하였는데, 눌린 position의 text를 어떻게 바꿔야할지
바뀐 data에 대해 Activity의 구성품들을 다시 그릴수있는지
조언좀 부탁드립니다~ㅠㅠ
layout xml
<?xml version="1.0" encoding="utf-8" ?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" />
<TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="tets" android:id="@+id/textview" />
</LinearLayout>
class
package kor.univ.incheon;
class
package kor.univ.incheon;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MemoryWord extends Activity {.
DbAdapter adapter;
private String[] items;// = {"Banana", "Hahahaha"};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.memory);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.memory);
adapter = new DbAdapter(this);
adapter = adapter.open();
items = new String[50];
// 단어를 리스트에 넣음
for(int i=0; i<50; i++){
Log.d("MemoryWord", "Before fetchword");
items[i] = adapter.fetchWord(i+1).getString(1);
Log.d("MemoryWord", "After fetchword");
}
adapter = adapter.open();
items = new String[50];
// 단어를 리스트에 넣음
for(int i=0; i<50; i++){
Log.d("MemoryWord", "Before fetchword");
items[i] = adapter.fetchWord(i+1).getString(1);
Log.d("MemoryWord", "After fetchword");
}
// 단어 데이터를 받아올 Array adapter 생성
ArrayAdapter<String> word_list
= new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1,items
);
ArrayAdapter<String> word_list
= new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1,items
);
// list view adapter
ListView listView=(ListView)findViewById(R.id.list);
listView.setAdapter(word_list);
listView.setOnItemClickListener(
new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,
View view, int position, long id) {
// Click된 position text Test
TextView textView = (TextView)findViewById(R.id.textview);
textView.setText(adapter.fetchWord(position+1).getString(2));
Log.d("Mouse Event", "Click "+adapter.fetchWord(position+1).getString(1));
}
}
);
}
}
TextView를 새로 생성하지 않고 onItemClick의 View view를 이용하면 되지 않을까요?
아니면 ArrayList의 내용을 변경하면 될것 같습니다.