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

ListView 관련 질문 입니다.

0 추천

지금 제가 텍스트뷰 형식으로 리스트 뷰에 넣어주고 있는데 

리스트 뷰로 바꿔서 넣을시 에러가 뜨네요... 

리스트뷰로 바꿔주시거나 textview 온클릭 이벤트관련 힌트좀 부탁드립니다.

MemoListActivity 입니다

package com.andro;
 
import java.util.ArrayList;
 
import android.os.Bundle;
import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
public class MemoListActivity extends ListActivity{
    ArrayAdapter<String> mAdapter;
    DBManager dbmgr;
    SQLiteDatabase sql;
    Cursor cursor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        mAdapter = new ArrayAdapter<String>(getApplication(),R.layout.list_row,new ArrayList<String>());
        setListAdapter(mAdapter);
         
        Button button = (Button)findViewById(R.id.btn_add);
        TextView tv = (TextView)findViewById(R.id.list_row_text);
               /*
                tv.setOnClickListener(new View.OnClickListener() {
             
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                 
            }
        });*/    //이부분을 추가만 하면 에러가 나는데 왜 그러는지 알 수 있을까요.
 
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addStringData();
            }
        });
    }
    private void addStringData(){
        EditText edit = (EditText)findViewById(R.id.edit_text); //EditText 값 edit 변수에 저장
        mAdapter.add(edit.getText().toString());                //mAdapter에 edit변수에 저장했던 값을 스트링형으로 추가
        mAdapter.notifyDataSetChanged();                        //mAdapter 새로고침
         
        try{
            dbmgr = new DBManager(this);        //db 생성    
            sql = dbmgr.getWritableDatabase();
            sql.execSQL("insert into MEMO valuse('"+edit.getText().toString()+"'"+"'"+null+"');");
            dbmgr.close();
        } catch(SQLiteException e){}
    }
}

DBManager 입니다.

package com.andro;
 
import android.content.Context;
import android.database.sqlite.*;
 
public class DBManager extends SQLiteOpenHelper{
     
    public DBManager (Context context){
        super(context,"MEMO",null,1);
    }
     
    public void onCreate(SQLiteDatabase db){
        db.execSQL("create table memo (title text, content text);");
    }
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

list_row.xml 입니다,

<TextView
    android:id="@+id/list_row_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

main.xml 입니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="제  목"/>
    <EditText
        android:id="@+id/edit_text"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"/>
    </LinearLayout>
    <Button
        android:id="@+id/btn_add"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:text="추가"/>
    <ListView
        android:id="@android:id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@android:id/empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

 

익명사용자 님이 2013년 8월 19일 질문

1개의 답변

0 추천
 
채택된 답변
list_row_text 는 main에 있는 항목이 아니기 때문에 에러가 나는겁니다.
Gradler (109,780 포인트) 님이 2013년 8월 19일 답변
...