How to make items available for viewing in a list?

I am trying to find a solution, but with very little success. I need to display a popup containing a list of items. I was able to display the window, but onitemclicklistener is not called when I click an item in the list view. Any help in this matter would be greatly appreciated.

thanks

Edit1:

public class PopUpWindowActivity extends Activity { /** Called when the activity is first created. */ String[] countries = new String[] { "India", "USA", "Canada" }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ListView lv = new ListView(this); lv.setAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, countries)); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView <? > arg0, View arg1, int arg2, long arg3) { Log.v("clicked", (String)((TextView) arg1).getText()); } }); ll.addView(lv); setContentView(ll); } } 

In the above code, I tried to create a layout inside which I added a list view. This makes list browsing more inactive. I have to do this because I'm trying to implement a pop-up window, inside which there should be several elements along with the list.

+6
source share
4 answers

Edited Answer

Apply this example. Please, this works for you. I tested this code

//ListviewActivity.java

  package com.anl.lk; public class ListviewActivity extends ListActivity { static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, COUNTRIES)); getListView().setTextFilterEnabled(true); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); new AlertDialog.Builder(this) .setTitle("Hello") .setMessage("from " + getListView().getItemAtPosition(position)) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) {} }) .show(); Toast.makeText(ListviewActivity.this, "ListView: " + l.toString() + "\n" + "View: " + v.toString() + "\n" + "position: " + String.valueOf(position) + "\n" + "id: " + String.valueOf(id), Toast.LENGTH_LONG).show(); } } 

// FirstPage

 package com.anl.lk; public class FirstPage extends Activity { @override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.button1); b.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Intent sam = new Intent(FirstPage.this, ListviewActivity.class); startActivity(sam); } }); } } 

// manifest file

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.anl.lk" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".FirstPage" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".ListviewActivity" android:theme="@android:style/Theme.Dialog"></activity> </application> 

Please use this code, you have a solution

-1
source

Can I list the list and items in the list? Or programmatically ...

 ListView myList = (ListView) findViewById(R.id.list_view_id); myList.setClickable(true); 

Or in XML ...

  <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:clickable="true"> ... </ListView> 

I suppose you did it, but sometimes we miss even the obvious :)

EDIT:

The Android Tutorial describes how to programmatically set onItemClickListener.

  ListView lv = getListView(); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // When clicked perform some action... } }); 

EDIT 2:

Here is my XML

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/list" /> </LinearLayout> 

And here is my code

  public class HelloAndroidActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String[] countries = getResources().getStringArray(R.array.countries_array); ListView lv = (ListView) findViewById(R.id.list); lv.setAdapter(new ArrayAdapter < String > (this, R.layout.list_item, countries)); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView <? > arg0, View view, int position, long id) { // When clicked, show a toast with the TextView text Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); } } 
+11
source
 ListView myList; myList = (ListView)findViewById(list_vew_id_in_xml) myList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //Toast.makeText(BritishCouncilActivity.this, "" + position, 2).show(); } }); 
+2
source

Paste this property into any list item

 android:onClick="buttonClicked" 

then in code

 public void buttonClicked(View view) { //Do what you want to do.. } 
0
source

Source: https://habr.com/ru/post/910138/


All Articles