[Android Q&A, Help & Troubleshooting] randomise:
I'm new to android,stuck in this part of my code.

I do hope, someone would help me with it.

As ,I've stuck for quite a while and have to complete within 2 days,

If I would like to filter in spinner based on the dates, how should I do it? For example,

I've a list of events, and in my spinner

when I select "Today", it will show out the list for today.

I've tried out the coding, however, I met some error. The part in BOLD, ** is having error.

I would like to get the XML data from here:

[attached in this thread]

the highlighted part

here is my coding: AndroidXMLParsingActivity.java

public class AndroidXMLParsingActivity extends ListActivity implements OnItemSelectedListener {

String[] browseby;

String[] dates = { "Today", "Tomorrow", "Next Week",

};

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

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

Spinner s1;

ListView listview;

CustomAdapter cus;

// All static variables

static final String URL = " URL ";

// XML node keys

static final String KEY_EVENT = "event"; // parent node

static final String KEY_TITLE = "title";

static final String KEY_START_TIME = "start_time";

[MENTION=439709]override[/MENTION]

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

XMLParser parser = new XMLParser();

String xml = parser.getXmlFromUrl(URL); // getting XML

Document doc = parser.getDomElement(xml); // getting DOM element

NodeList nl = doc.getElementsByTagName(KEY_EVENT);

// looping through all item nodes <item>

for (int i = 0; i < nl.getLength(); i++) {

// creating new HashMap

HashMap<String, String> map = new HashMap<String, String>();

Element e = (Element) nl.item(i);

// adding each child node to HashMap key => value

map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));

map.put(KEY_START_TIME, parser.getValue(e, KEY_START_TIME));

// adding HashList to ArrayList

menuItems.add(map);

}

// Adding menuItems to ListView

ListAdapter adapter = new SimpleAdapter(this, menuItems,

R.layout.list_item, new String[] { KEY_TITLE,KEY_START_TIME }, new int[] {

R.id.title,

R.id.startTime });

setListAdapter(adapter);

// selecting single ListView item

ListView lv = getListView();

lv.setOnItemClickListener(new OnItemClickListener() {

[MENTION=439709]override[/MENTION]

public void onItemClick(AdapterView<?> parent, View view,

int position, long id) {

// getting values from selected ListItem

String title = ((TextView) view.findViewById(R.id.title))

.getText().toString();

// Starting new intent

Intent in = new Intent(getApplicationContext(),

SingleMenuItemActivity.class);

in.putExtra(KEY_TITLE, title);

startActivity(in);

}

});

listview = (ListView) findViewById(R.id.listView1);

s1 = (Spinner) findViewById(R.id.spinner1);

for (int i = 0; i < browseby.length; i++) {

browse.add(browseby);

}

// aa = new

// ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Category);

s1.setOnItemSelectedListener(this);

mPostingData = browse;

for (int i = 0; i < mPostingData.size(); i++) {

if (mPostingData.size() > 0)

Log.i("Datas", mPostingData.get(i));

}

cus = new CustomAdapter(this, 0);

setListAdapter(cus);

ArrayAdapter<String> aa = new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, dates);

aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

s1.setAdapter(aa);

}

public void onItemSelected(AdapterView<?> parent, View v, int position,

long id) {

// listview.setFilterText(Category[position]);

String Text = s1.getSelectedItem().toString();

cus.getFilter().filter(Text);

cus.notifyDataSetChanged();

}

public void onNothingSelected(AdapterView<?> parent) {

// listview.setFilterText("");

}

public void onListItemClick(ListView parent, View v, int position, long id) {

Toast.makeText(this, "You have selected " + mPostingData.get(position),

Toast.LENGTH_SHORT).show();

}

class CustomAdapter extends ArrayAdapter<String> {

public void setData(ArrayList<String> mPpst) {

mPostingData = mPpst;// contains class items data.

}

[MENTION=439709]override[/MENTION]

******public Filter getFilter() {

return new Filter() {

[MENTION=439709]override[/MENTION]

protected void publishResults(CharSequence constraint,

FilterResults start_time) {

if (start_time.equals("2013-09-25") {

setData((ArrayList<String>) start_time.values);

} else {

setData(browse);// set original values

}

notifyDataSetInvalidated();

}******

[MENTION=439709]override[/MENTION]

protected FilterResults performFiltering(CharSequence constraint) {

FilterResults result = new FilterResults();

if (!TextUtils.isEmpty(constraint)) {

constraint = constraint.toString();

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

if (browse != null) {

for (int i = 0; i < browse.size(); i++) {

if (browse.get(i).contains(constraint)) {

System.out.println("My datas" + browse.get(i));

foundItems.add(browse.get(i));

} else {

}

}

}

result.count = foundItems.size();// search results found

// return count

result.values = foundItems;// return values

} else {

result.count = -1;// no search results found

}

return result;

}

};

}

LayoutInflater mInflater;

public CustomAdapter(Context context, int textViewResourceId) {

super(context, textViewResourceId);

// TODO Auto-generated constructor stub

mInflater = (LayoutInflater) context

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

[MENTION=439709]override[/MENTION]

public int getCount() {

// TODO Auto-generated method stub

return mPostingData.size();

}

[MENTION=439709]override[/MENTION]

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

[MENTION=439709]override[/MENTION]

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

// TODO Auto-generated method stub

ViewHolder vh;

if (convertView == null) {

vh = new ViewHolder();

convertView = mInflater.inflate(R.layout.row, null);

vh.t1 = (TextView) convertView.findViewById(R.id.textView1);

convertView.setTag(vh);

} else {

// Get the ViewHolder back to get fast access to the TextView

// and the ImageView.

vh = (ViewHolder) convertView.getTag();

}

if (mPostingData.size() > 0)

vh.t1.setText(mPostingData.get(position));

return convertView;

}

}

static class ViewHolder {

TextView t1;

}

}