• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps How put listview with checkbox in tab

Markella92

Lurker
Apr 29, 2016
1
0
Hi guys, i created list view with checkbox...now i would know how insert this listview in a tab.
this is my code for list view:

Code:
public class Main extends ActionBarActivity implements
        android.widget.CompoundButton.OnCheckedChangeListener{

    ListView lv;
    ArrayList<Planet> planetList;
    PlanetAdapter plAdapter;

    @Override
    protectedvoid onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lv =(ListView) findViewById(R.id.listview);
        displayPlanetList();


    }

    privatevoid displayPlanetList(){

        planetList =newArrayList<Planet>();
        planetList.add(newPlanet("Margherita",6,"€"));
        planetList.add(newPlanet("Diavola",7,"€"));
        planetList.add(newPlanet("Bufalina",5,"€"));
        planetList.add(newPlanet("Marinara",5,"€"));
        planetList.add(newPlanet("Viennese",4,"€"));

        plAdapter =newPlanetAdapter(planetList,this);
        lv.setAdapter(plAdapter);
    }

    @Override
    publicvoid onCheckedChanged(CompoundButton buttonView,boolean isChecked){

        int pos = lv.getPositionForView(buttonView);
        if(pos !=ListView.INVALID_POSITION){
            Planet p = planetList.get(pos);
            p.setSelected(isChecked);


            /*Toast.makeText(
                    this,
                    "Clicked on Planet: " + p.getName() + ". State: is "
                            + isChecked, Toast.LENGTH_SHORT).show();*/
        }

    }
    publicvoid showResult(View v){
        String result ="Selected Product are :";
        int totalAmount=0;

        for(Planet p : plAdapter.getBox()){
            if(p.selected){
                result +="\n"+ p.name+" "+p.distance+"€"+"q.tà :"+p.getQuantità();
                //if (p.quantità.equals("") && p.quantità.equals(null) ){
                System.out.println("leggo questo record:"+p.name +" "+ p.distance +" "+ p.quantità);

                System.out.println("leggo questo p.getquatità :"+p.quantità);
                //}
                //else{
                    System.out.println("leggo questo in p.quantità: "+p.getQuantità());
                    int quantitaInt=Integer.parseInt(p.getQuantità());
                    totalAmount+=p.distance * quantitaInt;
                //}
            }
        }
//      Toast.makeText(this, result+"\n"+"Total Amount:="+totalAmount, Toast.LENGTH_LONG).show();
        //Integer.toString(totalAmount);
        Intent i =newIntent(Main.this,SecondActivity.class);
        i.putExtra("NomeDati1", result);
        i.putExtra("NomeDati2",String.valueOf(totalAmount));
        startActivity(i);

    }
}

classPlanet{

    String name;
    int distance;
    String quantità;
    String valuta;
    boolean selected =false;



    publicPlanet(String name,int distance,String quantità){
        super();
        this.name = name;
        this.distance = distance;
        this.quantità= quantità;
    }

    publicString getName(){
        return name;
    }

    publicvoid setName(String name){
        this.name = name;
    }

    publicint getDistance(){
        return distance;
    }

    publicvoid setDistance(int distance){
        this.distance = distance;
    }

    publicboolean isSelected(){
        return selected;
    }

    publicvoid setSelected(boolean selected){
        this.selected = selected;
    }

    publicString getQuantità(){
        return quantità;
    }

    publicvoid setQuantità(String quantità){
        this.quantità= quantità;
    }
    publicString getValuta(){
        return valuta;
    }

    publicvoid setValuta(String valuta){
        this.valuta = valuta;
    }

}

publicclassPlanetAdapterextendsArrayAdapter<Planet>{

    privateList<Planet> planetList;
    privateContext context;
    ArrayList<Planet> objects;


    publicPlanetAdapter(List<Planet> planetList,Context context){
        super(context, R.layout.single_listview_item, planetList);
        this.planetList = planetList;
        this.context = context;
    }

    publicclassPlanetHolder{
        publicTextView planetName;
        publicTextView distView;
        publicCheckBox chkBox;
        publicEditText edit;
        publicString quantità;



    }

    @Override
    publicView getView(int position,View convertView,ViewGroup parent){

View row = convertView;
        PlanetHolder holder =null;
        if(row ==null){
            LayoutInflater inflater =((Activity) context).getLayoutInflater();
            row = inflater.inflate(R.layout.single_listview_item, parent,false);
            holder =newPlanetHolder();
            holder.planetName =(TextView) row.findViewById(R.id.name);
            holder.distView =(TextView) row.findViewById(R.id.dist);
            holder.chkBox =(CheckBox) row.findViewById(R.id.chk_box);
            holder.edit =(EditText) row.findViewById(R.id.editText);
            holder.edit.setVisibility(View.GONE);
            holder.edit.setEnabled(false);
            row.setTag(holder);
        }else{
            holder =(PlanetHolder) row.getTag();
        }
        finalPlanet p = planetList.get(position);

        holder.chkBox.setOnCheckedChangeListener((Main) context);
        finalPlanetHolder finalHolder = holder;
        holder.chkBox.setOnClickListener(newView.OnClickListener(){
            @Override
            publicvoid onClick(View v){
                if(finalHolder.chkBox.isChecked()){
                    finalHolder.edit.setVisibility(View.VISIBLE);
                    finalHolder.edit.setEnabled(true);
                    finalHolder.edit.addTextChangedListener(newTextWatcher(){
                        @Override
                        publicvoid beforeTextChanged(CharSequence s,int start,int count,int after){
                        }

                        @Override
                        publicvoid onTextChanged(CharSequence s,int start,int before,int count){
                        }

                        @Override
                        publicvoid afterTextChanged(Editable s){
                            p.setQuantità(finalHolder.edit.getText().toString().trim());
                        }
                    });
                }else{
                    finalHolder.edit.setVisibility(View.GONE);
                    finalHolder.edit.setEnabled(false);
                    finalHolder.edit.setText(null);
                }
            }
        });
        holder.planetName.setText(p.getName());
        holder.distView.setText(""+ p.getDistance());
        holder.chkBox.setChecked(p.isSelected());
        holder.chkBox.setTag(p);
        holder.edit.setEnabled(false);

        return row;
    }


    ArrayList<Planet> getBox(){
        ArrayList<Planet> box =newArrayList<Planet>();
        for(Planet p : planetList){
            if(p.selected)
                box.add(p);
        }
        return box;
    }


}

MAIN.XML:
Code:
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ListView
        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="400dp">

    </ListView>
    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:onClick="showResult"
        android:text="get_answer">
    </Button>

SINGLE_LISTVIEW_ITEM.XML

Code:
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <CheckBox
        android:id="@+id/chk_box"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"/>
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:orientation="vertical"
        android:layout_weight="1">

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/chk_box"
        android:textStyle="bold"/>

    <TextView
        android:id="@+id/dist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/name"
        android:layout_toRightOf="@id/chk_box"
        android:textSize="12sp"
        android:textStyle="italic"/>
    <EditText
        android:layout_width="196dp"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/editText"
        android:hint="quantità"
        >
    </EditText>
    </LinearLayout>

</LinearLayout>

HELP ME PLEASE
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones