I have a large product list for a store. I want users to be able to click on items in the list so that it can be added into a smaller user list after it is clicked.
What I have tried:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Arrays;
import static com.example.android.loginregister.R.id.list;
/**
* Created by keaberry on 3/8/2017.
*/
public class CreateList2 extends AppCompatActivity implements
AdapterView.OnItemClickListener {
String[] items;
ArrayList<string> listItems;
ArrayAdapter<string> adapter;
ListView listView;
EditText editText;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_list2);
listView=(ListView)findViewById(R.id.listview);
editText=(EditText)findViewById(R.id.txtsearch);
initList();
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int
count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().equals("")){
initList();
}
else{
searchItem(s.toString());
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
public void searchItem(String textToSearch){
for (String item:items){
if(!item.contains(textToSearch)){
listItems.remove(item);
}
}
adapter.notifyDataSetChanged();
}
public void initList(){
items=new String[]{"Bacon", "Milk","Cereal","Frozen Pizza","Sports Drinks","Cheese","Detergent","Chips","Pet Food"};
listItems=new ArrayList<>(Arrays.asList(items));
adapter=new ArrayAdapter<string>(this, R.layout.item_list, R.id.txtitem, listItems );
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView temp=(TextView) view;
String Value = listView.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), Value, Toast.LENGTH_SHORT).show();
}