현재 XML파일을 어찌어찌해서 동적으로 할당하게 만들었습니다.
동적으로 할당한 리스너들의 버튼 이벤트는 어떻게 만드는지 알려주실수 있습니까?
package com.testdynamic;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.BaseAdapter;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends Activity {
Button CreateBtn, DeleteBtn, SaveBtn, BackBtn;
EditText NameEditText;
TextView NameText, SettingText;
int a = 0;
ArrayList<String> ArrayString;
DataAdapter dataAdapter;
private ListView listview; //리스트 뷰
DataAdapter adapter; //데이터를 연결할 Adapter
ListView mListView;
//데이터를 담을 자료구조
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayString = new ArrayList<>();
mListView = (ListView) findViewById(R.id.dynamiclist);
CreateBtn = (Button) findViewById(R.id.CreateBtn);
CreateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
ArrayString.add("");
dataAdapter.notifyDataSetChanged();
}
});
SaveBtn = (Button) findViewById(R.id.SaveBtn);
DeleteBtn = (Button) findViewById(R.id.DeleteBtn);
DeleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
ArrayString.remove("");
dataAdapter.notifyDataSetChanged();
}
});
BackBtn = (Button) findViewById(R.id.BackBtn);
dataAdapter = new DataAdapter(this);
mListView.setAdapter(dataAdapter);
}
private class DataAdapter extends BaseAdapter {
// 레이아웃 XML을 읽어들이기 위한 객체
private LayoutInflater mInflater;
private Context mContext = null;
public DataAdapter(Context context) {
// 상위 클래스의 초기화 과정
// context, 0, 자료구조
super();
this.mContext = context;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return ArrayString.size();
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
// 자신이 만든 xml의 스타일로 보이기 위한 구문
@Override
public View getView(int position, View v, ViewGroup parent) {
View view = null;
// 현재 리스트의 하나의 항목에 보일 컨트롤 얻기
if (v == null) {
// XML 레이아웃을 직접 읽어서 리스트뷰에 넣음
view = mInflater.inflate(R.layout.listview, null);
} else {
view = v;
}
TextView name = (TextView) view.findViewById(R.id.NameText);
TextView Setting = (TextView) view.findViewById(R.id.SettingText);
Button up = (Button) view.findViewById(R.id.UpBtn);
Button down = (Button) view.findViewById(R.id.DownBtn);
Button set = (Button) view.findViewById(R.id.SetBtn);
EditText oneset = (EditText) view.findViewById(R.id.OneSet);
return view;
}
}
protected void onDestroy() {
super.onDestroy();
}
}
여기까지가 메인
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left|center"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.2"
android:orientation="horizontal">
<TextView
android:id="@+id/NameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="밝기"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.2"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/UpBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="▲" />
<Button
android:id="@+id/DownBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="▼" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/SettingText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="밝기 설정 : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/Light1Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<EditText
android:id="@+id/OneSet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="One Set" />
<Button
android:id="@+id/SetBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
여기까지가 추가하려는 xml 입니다.