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;
}
}