Razieh Shahraki

سفارشی سازی لیست ویو

1 ارسال در این موضوع قرار دارد

در این آموزش می خواهیم لیست ویو سفارشی با استفاده از آرایه درست کنیم که با کلیک روی دکمه مقدار مربوطه را نمایش دهد.

برای این کار پروژه جدیدی ایجاد کنید.

آرایه زیر را در فایل Strings.xml قرار دهید.

[shcode=xml]

     

          item 1 

          item 2 

          item 3 

          item 4 

          item 5 

          item 6 

          item 7 

          item 8 

          item 9 

          item 10 

          item 11 

          item 12 

          item 13 

          item 14 

          item 15 

          item 16 

          item 17 

          item 17 

          item 18 

          item 19 

          item 20 

        [/shcode]

کد زیر را در فایل activity_main.xml قرار دهید.

[shcode=xml]

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

    android:id="@+id/container" 

    android:layout_width="match_parent" 

    android:layout_height="match_parent" > 

 

   

        android:id="@+id/listView" 

        android:layout_width="fill_parent" 

        android:layout_height="fill_parent" > 

   

 

 

[/shcode]

فایل دیگری به نام child_listview.xml ایجاد کنید و کد زیر را در آن قرار دهید(این فایل لیست ویو را به صورت سفارشی نمایش می دهد)

[shcode=xml]

   

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

        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.example.articalonlistiner.MainActivity$PlaceholderFragment" > 

     

       

            android:id="@+id/childTextView" 

            android:layout_width="wrap_content" 

            android:layout_height="match_parent" 

            android:layout_alignParentLeft="true" /> 

     

       

            android:id="@+id/childButton" 

            android:layout_width="wrap_content" 

            android:layout_height="wrap_content" 

            android:layout_alignParentRight="true" 

            android:text="Click Me" /> 

     

   

  [/shcode]

در فایل MainActivity.java کد زیر را قرار دهید.

[shcode=java]import java.util.ArrayList; 

import java.util.Arrays; 

import java.util.List; 

 

import com.example.articalonlistiner.ListAdapter.customButtonListener; 

 

import android.os.Bundle; 

import android.support.v7.app.ActionBarActivity; 

import android.widget.ListView; 

import android.widget.Toast; 

 

public class MainActivity extends ActionBarActivity implements 

        customButtonListener { 

 

    private ListView listView; 

    ListAdapter adapter; 

    ArrayList dataItems = new ArrayList(); 

 

    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.activity_main); 

        String[] dataArray = getResources().getStringArray(R.array.listdata); 

        List dataTemp = Arrays.asList(dataArray); 

        dataItems.addAll(dataTemp); 

        listView = (ListView) findViewById(R.id.listView); 

        adapter = new ListAdapter(MainActivity.this, dataItems); 

        adapter.setCustomButtonListner(MainActivity.this); 

        listView.setAdapter(adapter); 

 

    } 

 

    @Override 

    public void onButtonClickListner(int position, String value) { 

        Toast.makeText(MainActivity.this, "Button click " + value, 

                Toast.LENGTH_SHORT).show(); 

 

    } 

 

}  [/shcode]

فایل دیگری به نام ListAdapter.java ایجاد کنید و کد زیر را در آن قرار دهید.

[shcode=java]import java.util.ArrayList; 

 

import android.content.Context; 

import android.view.LayoutInflater; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.view.ViewGroup; 

import android.widget.ArrayAdapter; 

import android.widget.Button; 

import android.widget.TextView; 

 

public class ListAdapter extends ArrayAdapter { 

    customButtonListener customListner; 

 

    public interface customButtonListener { 

        public void onButtonClickListner(int position,String value); 

    } 

 

    public void setCustomButtonListner(customButtonListener listener) { 

        this.customListner = listener; 

    } 

 

    private Context context; 

    private ArrayList data = new ArrayList(); 

 

    public ListAdapter(Context context, ArrayList dataItem) { 

        super(context, R.layout.child_listview, dataItem); 

        this.data = dataItem; 

        this.context = context; 

    } 

 

    @Override 

    public View getView(final int position, View convertView, ViewGroup parent) { 

        ViewHolder viewHolder; 

        if (convertView == null) { 

            LayoutInflater inflater = LayoutInflater.from(context); 

            convertView = inflater.inflate(R.layout.child_listview, null); 

            viewHolder = new ViewHolder(); 

            viewHolder.text = (TextView) convertView 

                    .findViewById(R.id.childTextView); 

            viewHolder.button = (Button) convertView 

                    .findViewById(R.id.childButton); 

            convertView.setTag(viewHolder); 

        } else { 

            viewHolder = (ViewHolder) convertView.getTag(); 

        } 

        final String temp = getItem(position); 

        viewHolder.text.setText(temp); 

        viewHolder.button.setOnClickListener(new OnClickListener() { 

 

            @Override 

            public void onClick(View v) { 

                if (customListner != null) { 

                    customListner.onButtonClickListner(position,temp); 

                } 

 

            } 

        }); 

 

        return convertView; 

    } 

 

    public class ViewHolder { 

        TextView text; 

        Button button; 

    } 

}  [/shcode]

خروجی برنامه به صورت زیر می باشد

[align=center]398x594http://www.c-sharpcorner.com/UploadFile/9e8439/create-custom-listener-on-button-in-listitem-listview-in-a/Images/genymotion.jpg[/img]

[/align]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری