본문 바로가기
카테고리 없음

Listview_mydata를 Array로 받아서 테스트

by ByteBridge 2013. 2. 20.
반응형

package com.example.listexam;

//데이터 클래스를 만들어 사용

public class MyData {

String title;

String desc;

public MyData(String title,String desc) {

this.title=title;

this.desc = desc;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return title+"\n\r" + desc;//스트링을 넘겨주기위함 

}

}






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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity" >


    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/hello_world" />


    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content" >


        <EditText

            android:id="@+id/editText1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:ems="10"

            android:inputType="textPersonName" >


            <requestFocus />

        </EditText>


        <Button

            android:id="@+id/button1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="Add" />


    </LinearLayout>


    <ListView

        android:id="@+id/listView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_weight="1" >


    </ListView>


</LinearLayout>

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

package com.example.listexam;


import java.util.ArrayList;


import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.Toast;


public class MainActivity extends Activity {

//데이터를 추가하려면 리스트 를사용

//고정된 데이터라면 array 이나 string 을 사용

//toString --> 주소를 넘겨준다.

EditText inputWord;

ListView list;

ArrayAdapter<MyData>mAdapter;//어댑터를 만듬

//데이터 소스(안드로이드에서 제공)

ArrayList<MyData>mData = new ArrayList<MyData>();

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        

        inputWord = (EditText)findViewById(R.id.editText1);

        list = (ListView)findViewById(R.id.listView1);

        initData();//유저가 만들어놓은 데이터

        //리스트 사용

        //android 드가 붙을 시 안드로이드 플랫폼이 제공하는 것임

        //텍스트 뷰 한개가 들어가있음,

        //adapter-->두번재는 아이템의 모양,세번째는 데이터의 소스가 들어감

        //

        mAdapter = new ArrayAdapter<MyData>(this, android.R.layout.simple_list_item_1,mData);//생성

        

        list.setAdapter(mAdapter);//madapter 가 가지고있는 데이터를 리스트에 보여줘

        

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {


@Override

public void onItemClick(AdapterView<?> parent, View childView, int position,

long id) {

// TODO Auto-generated method stub

Toast.makeText(MainActivity.this, "clicked item: "+mData.get(position),

Toast.LENGTH_SHORT).show();

}

});

        //리스트 아이템을 추가해주기 

        Button btn = (Button)findViewById(R.id.button1);

        btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String addString = inputWord.getText().toString();

mAdapter.add(new MyData(addString, "desc"));///추가 해주기

}

});

    }

    //리스트테스트 하기 위해 이미적으로 내가만든 클래스의 데이터를 만들어놓음

  //mdata에 이미의 값을 추가했음

    private void initData(){

    mData.add(new MyData("Data01","desc1"));

    mData.add(new MyData("Data02","desc2"));

    mData.add(new MyData("Data03","desc3"));

   

    }

    


    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

    

}



반응형