I want to try calling from ListView(change "Toast" for direct calling ListView).
Hope you guys help me.
ContactListActiviy.java
package com.ngohung.view;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.markupartist.android.widget.ActionBar;
import com.ngohung.example.adapter.ExampleContactAdapter;
import com.ngohung.example.models.ExampleContactItem;
import com.ngohung.example.models.ExampleDataSource;
import com.ngohung.widget.ContactItemComparator;
import com.ngohung.widget.ContactItemInterface;
import com.ngohung.widget.ContactListView;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class ContactListActivity extends Activity implements TextWatcher {
private ExampleContactListView listview;
private EditText searchBox;
private String searchString;
private Object searchLock = new Object();
boolean inSearchMode = false;
private final static String TAG = "com.ngohung.view.ContactListActivity";
List<ContactItemInterface> contactList;
List<ContactItemInterface> filterList;
private SearchListTask curSearchTask = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_list);
final ActionBar actionBar = (ActionBar) findViewById(R.id.actionbar);
actionBar.setTitle("Layanan Publik Kendari");
actionBar.setHomeLogo(R.drawable.ic_launcher);
filterList = new ArrayList<ContactItemInterface>();
contactList = ExampleDataSource.getSampleContactList();
ExampleContactAdapter adapter = new ExampleContactAdapter(this, R.layout.example_contact_item, contactList);
listview = (ExampleContactListView) this.findViewById(R.id.listview);
listview.setFastScrollEnabled(true);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View v, int position,
long id) {
List<ContactItemInterface> searchList = inSearchMode ? filterList : contactList ;
float lastTouchX = listview.getScroller().getLastTouchDownEventX();
if(lastTouchX < 45 && lastTouchX > -1){
Toast.makeText(ContactListActivity.this, "User image is clicked ( " + searchList.get(position).getItemForIndex() + ")", Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(ContactListActivity.this, "Nomor: " + searchList.get(position).getItemForIndex() , Toast.LENGTH_SHORT).show();
}
});
searchBox = (EditText) findViewById(R.id.input_search_query);
searchBox.addTextChangedListener(this);
}
@Override
public void afterTextChanged(Editable s) {
searchString = searchBox.getText().toString().trim().toUpperCase();
if(curSearchTask!=null && curSearchTask.getStatus() != AsyncTask.Status.FINISHED)
{
try{
curSearchTask.cancel(true);
}
catch(Exception e){
Log.i(TAG, "Fail to cancel running search task");
}
}
curSearchTask = new SearchListTask();
curSearchTask.execute(searchString);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
private class SearchListTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
filterList.clear();
String keyword = params[0];
inSearchMode = (keyword.length() > 0);
if (inSearchMode) {
for (ContactItemInterface item : contactList) {
ExampleContactItem contact = (ExampleContactItem)item;
if ((contact.getNama().toUpperCase().indexOf(keyword) > -1) ) {
filterList.add(item);
}
}
}
return null;
}
protected void onPostExecute(String result) {
synchronized(searchLock)
{
if(inSearchMode){
ExampleContactAdapter adapter = new ExampleContactAdapter(ContactListActivity.this, R.layout.example_contact_item, filterList);
adapter.setInSearchMode(true);
listview.setInSearchMode(true);
listview.setAdapter(adapter);
}
else{
ExampleContactAdapter adapter = new ExampleContactAdapter(ContactListActivity.this, R.layout.example_contact_item, contactList);
adapter.setInSearchMode(false);
listview.setInSearchMode(false);
listview.setAdapter(adapter);
}
}
}
}
}
ExampleDataSource.java (Btw I use "ArrayList")
package com.ngohung.example.models;
import java.util.ArrayList;
import java.util.List;
import com.ngohung.widget.ContactItemInterface;
public class ExampleDataSource {
public static List<ContactItemInterface> getSampleContactList(){
List<ContactItemInterface> list = new ArrayList<ContactItemInterface> ();
list.add(new ExampleContactItem("Polda SULTRA" , "3195040" ,"Sentral PABX jl haluoleo 1" ) );
list.add(new ExampleContactItem("Polda SULTRA" ,"3195041" , "Sentral PABX jl haluoleo 1") );
list.add(new ExampleContactItem("Polda SULTRA" ,"3195042" , "Sentral PABX jl haluoleo 1" ) );
list.add(new ExampleContactItem("Direktorat diklat" , "3190549" , "Sentral PABX jl haluoleo 1") );
list.add(new ExampleContactItem("Direktorat intelkam" , "3190041", "Jl mayjen di panjaitan 1" ) );
list.add(new ExampleContactItem("Direktorat samapta" ,"3005114", "Jl mayjen di panjaitan") );
list.add(new ExampleContactItem("Direktorat lantas" , "3006112" , "Jl mayjen di panjaitan" ) );
list.add(new ExampleContactItem("Direktorat pol air" , "3007604", "Jl mayjen di panjaitan" ) );
return list;
}
}
Thanks..