PDA

View Full Version : یکی راجع به این کد بهم بگه



moh_sen201
دوشنبه 14 مرداد 1392, 16:42 عصر
package com.androidbegin.filterlistviewtutorial;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View.OnClickListener;

public class ListViewAdapter extends BaseAdapter {

// Declare Variables
Context mContext;
LayoutInflater inflater;
private List<WorldPopulation> worldpopulationlist = null;
private ArrayList<WorldPopulation> arraylist;

public ListViewAdapter(Context context, List<WorldPopulation> worldpopulationlist) {
mContext = context;
this.worldpopulationlist = worldpopulationlist;
inflater = LayoutInflater.from(mContext);
this.arraylist = new ArrayList<WorldPopulation>();
this.arraylist.addAll(worldpopulationlist);
}

public class ViewHolder {
TextView rank;
TextView country;
}

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

@Override
public WorldPopulation getItem(int position) {
return worldpopulationlist.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

public View getView(final int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.listview_item, null);
// Locate the TextViews in listview_item.xml
holder.rank = (TextView) view.findViewById(R.id.rank);
holder.country = (TextView) view.findViewById(R.id.country);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
// Set the results into TextViews
holder.country.setText(worldpopulationlist.get(pos ition).getCountry());

// Listen for ListView Item Click
view.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// Send single item click data to SingleItemView Class
Intent intent = new Intent(mContext, SingleItemView.class);
// Pass all data rank
intent.putExtra("rank",(worldpopulationlist.get(position).getRank()));
// Pass all data country
intent.putExtra("country",(worldpopulationlist.get(position).getCountry())) ;


// Pass all data flag
// Start SingleItemView Class
mContext.startActivity(intent);

}
});

return view;
}

// Filter Class
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
worldpopulationlist.clear();
if (charText.length() == 0) {
worldpopulationlist.addAll(arraylist);
}
else
{
for (WorldPopulation wp : arraylist)
{
if (wp.getCountry().toLowerCase(Locale.getDefault()). contains(charText))
{
worldpopulationlist.add(wp);
}
}
}
notifyDataSetChanged();
}

}





package com.androidbegin.filterlistviewtutorial;

public class WorldPopulation {
public static String rank;
public static String country;

public WorldPopulation(String rank, String country) {
this.rank = rank;
this.country = country;
}

public String getRank() {
return this.rank;
}

public String getCountry() {
return this.country;
}

}





package com.androidbegin.filterlistviewtutorial;

public class WorldPopulation {
public static String rank;
public static String country;

public WorldPopulation(String rank, String country) {
this.rank = rank;
this.country = country;
}

public String getRank() {
return this.rank;
}

public String getCountry() {
return this.country;
}

}





package com.androidbegin.filterlistviewtutorial;

import java.util.ArrayList;
import java.util.Locale;

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {
public static String str;
// Declare Variables
ListView list;
ListViewAdapter adapter;
EditText editsearch;
String[] rank;
String[] country;
ArrayList<WorldPopulation> arraylist = new ArrayList<WorldPopulation>();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_main);

// Generate sample data
rank = new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };

country = new String[] { "China", "India", "United States",
"Indonesia", "Brazil", "Pakistan", "Nigeria", "Bangladesh",
"Russia", "Japan" };

// Locate the ListView in listview_main.xml
list = (ListView) findViewById(R.id.listview);

Toast.makeText(MainActivity.this, str, 1).show();
for (int i = 0; i < rank.length; i++)
{
WorldPopulation wp = new WorldPopulation(rank[i], country[i]);
// Binds all strings into an array
arraylist.add(wp);


}

// Pass results to ListViewAdapter Class
adapter = new ListViewAdapter(this, arraylist);

// Binds the Adapter to the ListView
list.setAdapter(adapter);

// Locate the EditText in listview_main.xml
editsearch = (EditText) findViewById(R.id.search);

// Capture Text in EditText
editsearch.addTextChangedListener(new TextWatcher() {

@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
String text = editsearch.getText().toString().toLowerCase(Locale .getDefault());
adapter.filter(text);

}

@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}

@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
});
}

// Not using options menu in this tutorial
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}



اینم آدرس برنامه

https://github.com/AndroidBegin/Android-Search-ListView-using-Filter