I
IIIGeorgeIII
Neues Mitglied
- 1
Guten Tag
Ich hoffe ihr könnt mir Helfen
Habe ein Filter für Search ListView erstellt, das Problem ist es funktioniert nicht, komme einfach nicht mehr weiter :-(
Ich hoffe ihr könnt mir Helfen
Habe ein Filter für Search ListView erstellt, das Problem ist es funktioniert nicht, komme einfach nicht mehr weiter :-(
Code:
public class PzCustomAdapter extends BaseAdapter implements Filterable {
String[] name,einheit;
private List<String>filteredData = null;
Context context;
int [] imageId;
private static LayoutInflater inflater=null;
public PzCustomAdapter(MainActivityPz mainActivity, String[] prgmNameList, int[] prgmImages, String[] prgmNameEinheit) {
// TODO Auto-generated constructor stub
name=prgmNameList;
einheit=prgmNameEinheit;
context=mainActivity;
imageId=prgmImages;
inflater = ( LayoutInflater )context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return name.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public Filter getFilter() {
return new Filter() {
/* (non-Javadoc)
* @see android.widget.Filter#performFiltering(java.lang.CharSequence)
*/
@Override
protected FilterResults performFiltering(CharSequence constraint) {
// TODO Auto-generated method stub
/*
* Here, you take the constraint and let it run against the array
* You return the result in the object of FilterResults in a form
* you can read later in publichResults.
*/
constraint = constraint.toString().toLowerCase();
FilterResults result = new FilterResults();
ArrayList<String> f = new ArrayList<String>();
ArrayList<String> p = new ArrayList<String>();
for(String product : name){
p.add(product);
}
if(constraint != null && constraint.toString().length() > 0)
{
for(int i = 0; i < p.size(); i++)
{
String product = p.get(i);
if(product.toLowerCase().contains(constraint))
f.add(product);
}
result.count = f.size();
result.values = f;
}
else
{
result.values = p;
result.count = p.size();
}
return result;
}
/* (non-Javadoc)
* @see android.widget.Filter#publishResults(java.lang.CharSequence, android.widget.Filter.FilterResults)
*/
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
// TODO Auto-generated method stub
/*
* Here, you take the result, put it into Adapters array
* and inform about the the change in data.
*/
filteredData = (ArrayList<String>) results.values;
notifyDataSetChanged();
}
};
}
public class Holder
{
TextView tv,tv2;
ImageView img;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.listviewpz_layout, null);
holder.tv=(TextView) rowView.findViewById(R.id.txtpz);
holder.tv2=(TextView) rowView.findViewById(R.id.curpz);
holder.img=(ImageView) rowView.findViewById(R.id.flagpz);
holder.tv.setText(name[position]);
holder.tv2.setText(einheit[position]);
holder.img.setImageResource(imageId[position]);
rowView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, ""+name[position], Toast.LENGTH_LONG).show();
if (prgmNameList[position].equals("Mars II")){
Intent intent = new Intent(context, MarszweiActivity.class);
context.startActivity(intent);
}
}
});
return rowView;
}
Code:
public class MainActivityPz extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private static final String TAG = MainActivityPz.class.getSimpleName();
ListView lv;
Context context;
PzCustomAdapter adapter;
public static int[] prgmImages = {
R.drawable.fuchs,
R.drawable.boxer,
R.drawable.dingoeins,
R.drawable.biber,
R.drawable.dingozweigeazwei,
R.drawable.dingozweigsi,
R.drawable.fennek,
R.drawable.leopard,
R.drawable.marder,
R.drawable.marszwei};
public static String[] prgmNameList = {
"Fuchs",
"Boxer",
"Dingo I",
"Biber",
"Dingo 2 GE A2",
"Dingo 2 GE C1 GSI",
"Fennek STF Lu/Bo",
"Leopard 2",
"Spz Marder",
"Mars II"
};
public static String[] prgmNameEinheit = {
"Kpf",
"Kpf",
"Kpf",
"Pionier",
"Kpf",
"Inst",
"Aufklärer",
"Kpf",
"Kpf",
"Artillerie"
};
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activitypz_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar8);
setSupportActionBar(toolbar);
context = this;
lv = (ListView) findViewById(R.id.list4);
adapter = new PzCustomAdapter(this, prgmNameList, prgmImages, prgmNameEinheit);
lv.setAdapter(adapter);
lv.setTextFilterEnabled(true);
Log.v(TAG, "ausführliche Protokollierung, nicht in Produktion verwenden");
Log.d(TAG, "Debug-Ausgaben");
Log.i(TAG, "Informationen");
Log.w(TAG, "Warnung");
Log.e(TAG, "Fehler");
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout8);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view8);
navigationView.setNavigationItemSelectedListener(this);
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout8);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
getMenuInflater().inflate(R.menu.search_main, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
SearchView.OnQueryTextListener textChangeListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
// this is your adapter that will be filtered
adapter.getFilter().filter(newText);
System.out.println("on text chnge text: "+newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
// this is your adapter that will be filtered
return true;
}
};
searchView.setOnQueryTextListener(textChangeListener);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.ueber:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Über");
alert.setMessage("Datenschutzerklärung:");
// Set an EditText view to get user input
final TextView input = new TextView(this);
alert.setView(input);
input.setGravity(Gravity.CENTER_HORIZONTAL);
input.setText(R.string.uebertextpopup);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
return true;
default:
return super.onContextItemSelected(item);
}
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_home) {
Intent radfahrzeuge = new Intent(this, MainActivity.class);
startActivity(radfahrzeuge);
} else if (id == R.id.nav_pkw) {
Intent radfahrzeuge = new Intent(this, MainActivityPkw.class);
startActivity(radfahrzeuge);
} else if (id == R.id.nav_lkw) {
Intent radfahrzeuge = new Intent(this, MainActivityLkw.class);
startActivity(radfahrzeuge);
} else if (id == R.id.nav_anheunger) {
Intent anheunger = new Intent(this, MainActivityAnheunger.class);
startActivity(anheunger);
} else if (id == R.id.nav_pz) {
Intent rechner = new Intent(this, MainActivityPz.class);
startActivity(rechner);
} else if (id == R.id.nav_rechner) {
Intent rechner = new Intent(this, ZurrmittelActivity.class);
startActivity(rechner);
} else if (id == R.id.nav_map) {
Intent rechner = new Intent(this, MainActivityMap.class);
startActivity(rechner);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout8);
drawer.closeDrawer(GravityCompat.START);
return false;
}
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
public Action getIndexApiAction() {
Thing object = new Thing.Builder()
.setName("MainActivityPz Page") // TODO: Define a title for the content shown.
// TODO: Make sure this auto-generated URL is correct.
.setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
.build();
return new Action.Builder(Action.TYPE_VIEW)
.setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client.connect();
AppIndex.AppIndexApi.start(client, getIndexApiAction());
}
@Override
public void onStop() {
super.onStop();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
AppIndex.AppIndexApi.end(client, getIndexApiAction());
client.disconnect();
}
}