0
У меня есть ListView, который заполняется с ArrayList строк и я хочу, чтобы сделать его интерактивным .. но я не могу распознать, какой пункт был щелкнул, какой элемент был щелкнули в интерактивном списке
я сделал это, но это не сработает!
Есть ли способ узнать, что строка нажата? если нет есть ли способ узнать даже позицию щелкнутого элемента?
public class SearchResults extends Activity{
public ArrayList<String> findMovieByName(String name) {
ArrayList<movie> matches = new ArrayList<movie>();
// go through list of members and compare name with given name
for(movie movie : MovieReg_activity.movies) {
if (movie.getName().contains(name)) {
matches.add(movie); // adds matching member to the return list
}
}
ArrayList<String> matchesNames = new ArrayList<String>();
int x=0;
for(movie movie : matches) {
String name65 = movie.getName();
matchesNames.add(x,name65);
x++ ;
}
return matchesNames; // return the matches, which is empty when no member with the given name was found
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
ListView lv=(ListView)findViewById(R.id.listView1);
TextView tv=(TextView)findViewById(R.id.textView1);
Bundle bundle =getIntent().getExtras();
if(bundle!=null){
String searchbar =bundle.getString("search value");
ArrayList<String> list = findMovieByName(searchbar);
int match_size=list.size();
tv.setText("no of matches=" +match_size);
ArrayAdapter<String> ad = new ArrayAdapter<String>(SearchResults.this, android.R.layout.simple_list_item_1, list);
lv.setAdapter(ad);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View position , int arg2,
long arg3) {
if(position.equals(1)){
Toast.makeText(SearchResults.this,"1 chosen", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(SearchResults.this,"nothing", Toast.LENGTH_LONG).show();
}
}
});
}
}
}