ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [4] List View, Custom Button
    Develpment/Android Sample Source 2020. 9. 13. 21:38

    1. List View


     Sample Source

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    package 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;
     
        @Override
        protected 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() {
                @Override
                public void onClick(View view) {
                    arr.add(et.getText().toString());
     
                    if( myList != null ) {
                        // Adapter 갱신 메소드
                        adapter.notifyDataSetChanged();
                    }
                }
            });
     
        }
    }
     
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    package 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() {
            @Override
            public 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


     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?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">
     
        <EditText
            android:id="@+id/et"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"/>
     
        <ListView
            android: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"/>
     
        <Button
            android:id="@+id/addBtn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="ADD"/>
     
    </LinearLayout>
     
    cs

     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?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">
     
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"/>
     
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
     
            <TextView
                android:id="@+id/list_form_txt_s"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="txt"/>
     
            <TextView
                android: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

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    package 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;
     
        @Override
        protected 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() {
            @Override
            public void onClick(View view) {
     
                if(((Button)view).getId()%2 == 0)
                    Toast.makeText(getApplicationContext(), ((Button)view).getText().toString(), Toast.LENGTH_SHORT).show();
            }
        };
     
    }
     
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?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

     



    댓글

Designed by Tistory.