0

OneFragment.java

package com.pixalstudio.musicadda;


import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class OneFragment extends android.support.v4.app.Fragment {


    public OneFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_one, container, false);


        ArrayList<String> songs = new ArrayList<String>();

        List<String> Songs = Arrays.asList(getResources().getStringArray(R.array.songs));

//        list.add("item1");
//        list.add("item2");

        MyCustomAdapter adapter = new MyCustomAdapter(songs, getActivity());

        ListView listView = (ListView) view.findViewById(R.id.listView_fragone);
        listView.setAdapter(adapter);
        return view;
    }



    /*@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_one, container, false);

        ArrayList<String> list = new ArrayList<String>();
        list.add("item1");
        list.add("item2");

        MyCustomAdapter adapter = new MyCustomAdapter(list, this);

        ListView listView = (ListView) getView().findViewById(R.id.listView_fragone);
        listView.setAdapter(adapter);
        return view;
    }*/


}

I am getting error on this file.

1

Error:(43, 13) error: <identifier> expected
Error:(43, 14) error: illegal start of type
Error:(44, 13) error: <identifier> expected
Error:(44, 14) error: illegal start of type
Error:(49, 24) error: <identifier> expected
Error:(49, 32) error: <identifier> expected

[This is FragmentOne.java where I am getting errors.]

MyCustomAdapter.java

    package com.pixalstudio.musicadda;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.TextView;

import java.util.ArrayList;

/**
 * Created by akkie on 3/7/2016.
 */
public class MyCustomAdapter extends BaseAdapter implements ListAdapter {

    private ArrayList<String> list = new ArrayList<String>();
    private Context context;

    public MyCustomAdapter(ArrayList<String> list, Context context) {

        this.list = list;
        this.context = context;

    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int pos) {
        return list.get(pos);
    }

    @Override
    public long getItemId(int pos) {
        return 0;
        //just return 0 if your list items do not have an Id variable.
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(R.layout.cust_layout, null);
        }

        //Handle TextView and display string from your list
        TextView listItemText = (TextView)view.findViewById(R.id.list_item_string);
        listItemText.setText(list.get(position));

        //Handle buttons and add onClickListeners
        Button deleteBtn = (Button)view.findViewById(R.id.delete_btn);
        Button addBtn = (Button)view.findViewById(R.id.add_btn);

        deleteBtn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                //do something
                list.remove(position); //or some other task
                notifyDataSetChanged();
            }
        });
        addBtn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                //do something
                notifyDataSetChanged();
            }
        });

        return view;
    }
}

Added MyCustomAdapter.java please check it and let me know if there changes need to be made.

Updated FragmentOne.java

akkie4396
  • 101
  • 1
  • 9
  • you are passing this to MyCustomerAdapter which is current fragment not the Activity context, please change this to getActivity(). – Rohit Patil Mar 07 '16 at 17:45
  • Thankx.. this solved the problem n the app perfectly. but now the problem is I dont want item1 & item2 list the listview, instead I have my own String array which I want to be displayed in the Listview. – akkie4396 Mar 07 '16 at 17:52
  • ArrayList list = Arrays.asList(getResources().getStringArray(R.array.list)); – Rohit Patil Mar 07 '16 at 18:11

2 Answers2

2

Try to place your code inside onCreateView method.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

...

    ArrayList<String> list = new ArrayList<String>();
    list.add("item1");
    list.add("item2");

    MyCustomAdapter adapter = new MyCustomAdapter(list, this);

    ListView listView = (ListView) getView().findViewById(R.id.listView_fragone);
   listView.setAdapter(adapter);

...
}
Vasily Kabunov
  • 6,511
  • 13
  • 49
  • 53
1

you are passing this to MyCustomerAdapter which is current fragment not the Activity context, please change this to getActivity()

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_one, container, false);

    ArrayList<String> Songs = Arrays.asList(getResources().getStringArray(R.array.songs));

   //        list.add("item1");
   //        list.add("item2");

    MyCustomAdapter adapter = new MyCustomAdapter(Songs , getActivity());

    ListView listView = (ListView) view.findViewById(R.id.listView_fragone);
    listView.setAdapter(adapter);
    return view;
}
Rohit Patil
  • 1,068
  • 8
  • 9