-
[4] List View, Custom ButtonDevelpment/Android Sample Source 2020. 9. 13. 21:38
1. List View
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package com.ssh.user.ex_1202;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import java.util.ArrayList;public class ListViewActivity extends AppCompatActivity {EditText et;Button addBtn;ListView myList;MyAdapter adapter;ArrayList<String> arr;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_list_view);et = (EditText)findViewById(R.id.et);addBtn = (Button)findViewById(R.id.addBtn);myList = (ListView)findViewById(R.id.myList);arr = new ArrayList<>();// ListView 항목을 구현하기 위한 Adapter 생성adapter = new MyAdapter(ListViewActivity.this, R.layout.list_form, arr, myList);// 생성된 Adapter를 ListView에 탑재 ( getView 호출)myList.setAdapter(adapter);addBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {arr.add(et.getText().toString());if( myList != null ) {// Adapter 갱신 메소드adapter.notifyDataSetChanged();}}});}}cs 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package com.ssh.user.ex_1202;import android.content.Context;import android.support.annotation.NonNull;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;/*** Created by USER on 2016-12-02.*/public class MyAdapter extends ArrayAdapter<String>{Context context;ArrayList<String> arr;int resource;public MyAdapter(Context context, int resource, ArrayList<String> arr, ListView list) {super(context, resource, arr);this.resource = resource;this.context = context;this.arr = arr;list.setOnItemClickListener(click);}AdapterView.OnItemClickListener click = new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(getContext(), arr.get(i), Toast.LENGTH_SHORT).show();}};@NonNull@Override// arr의 length 회수만큼 position이 증가하면서 호출됨.public View getView(int position, View convertView, ViewGroup parent) {LayoutInflater linf = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);convertView = linf.inflate(resource, null);String str = arr.get(position);TextView list_form_txt = (TextView)convertView.findViewById(R.id.list_form_txt);TextView list_form_txt_s = (TextView)convertView.findViewById(R.id.list_form_txt_s);list_form_txt.setText(str);list_form_txt_s.setText(""+position);return convertView;}}cs 123456789101112131415161718192021222324252627282930313233343536<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_list_view"android:layout_width="match_parent"android:layout_height="match_parent"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="com.ssh.user.ex_1202.ListViewActivity"android:orientation="vertical"><EditTextandroid:id="@+id/et"android:layout_width="match_parent"android:layout_height="wrap_content"android:inputType="text"/><ListViewandroid:id="@+id/myList"android:overScrollMode="never"android:scrollbars="none"android:transcriptMode="alwaysScroll"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"/><Buttonandroid:id="@+id/addBtn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="ADD"/></LinearLayout>cs 12345678910111213141516171819202122232425262728293031323334<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal" android:layout_width="match_parent"android:layout_height="match_parent"android:padding="10dp"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/list_form_txt_s"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="txt"/><TextViewandroid:id="@+id/list_form_txt"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="7dp"android:text="line2"android:textSize="20dp"android:textStyle="bold"/></LinearLayout></LinearLayout>cs 2. Custom Button
Sample Source
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package com.ssh.user.ex_1202;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.Toast;public class CustomActivity extends AppCompatActivity {LinearLayout activity_custom;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_custom);activity_custom = (LinearLayout)findViewById(R.id.activity_custom);for(int i = 0; i < 5 ; i++){Button btn = new Button(CustomActivity.this);btn.setId(i);btn.setText("btn : "+i);btn.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);btn.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);btn.setOnClickListener(click);activity_custom.addView(btn);}}View.OnClickListener click = new View.OnClickListener() {@Overridepublic void onClick(View view) {if(((Button)view).getId()%2 == 0)Toast.makeText(getApplicationContext(), ((Button)view).getText().toString(), Toast.LENGTH_SHORT).show();}};}cs 123456789101112131415<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_custom"android:layout_width="match_parent"android:layout_height="match_parent"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="com.ssh.user.ex_1202.CustomActivity"android:orientation="vertical"></LinearLayout>cs 'Develpment > Android Sample Source' 카테고리의 다른 글
[6] Intent, Handler, Exit (0) 2020.09.13 [5] Button Effective, Menu, AlertDialog, Dialog, Menu Dialog, Rating (0) 2020.09.13 [3] TouchEvent, Inflater (0) 2020.09.13 [2] Life Cycle, Event (0) 2020.09.13 [1] Button, Spinner, ListView, Weight (0) 2020.09.13