I'm starting in Android development and don't still get how to do this. I have a ListView, when the user taps one of the items I wan´t to display some information about it. A popup like this:
That's the way it should look, I already have the XML which is this:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b5000000">
<RelativeLayout
android:layout_width="340dp"
android:layout_height="400dp"
android:columnCount="20"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:padding="10dp"
android:background="@drawable/menubutton">
<Button
android:layout_width="50dp"
android:layout_height="50dp"
android:text="X"
android:id="@+id/infraccionesPopUpCerrar"
android:layout_gravity="right|top"
android:layout_row="0"
android:layout_column="19"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/imageView8"
android:layout_row="2"
android:layout_column="10"
android:layout_below="@+id/infraccionesPopUpCerrar"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="Aqui se detallaran las causas de la infraccion"
android:id="@+id/infraccionesPopUpCausa"
android:layout_column="0"
android:layout_row="3"
android:layout_columnSpan="20"
android:layout_below="@+id/imageView8"
android:layout_alignParentStart="true"
android:layout_marginTop="43dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/infraccionesPopUpFecha"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="PAGADA"
android:id="@+id/infraccionesPopUpSituacion"
android:layout_below="@+id/infraccionesPopUpCausa"
android:layout_alignStart="@+id/infraccionesPopUpCausa" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Folio: 00000000"
android:id="@+id/infraccionesPopUpFolio"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/infraccionesPopUpSituacion" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Estacionamiento prohibido"
android:id="@+id/infraccionesPopUpTitulo"
android:layout_below="@+id/imageView8"
android:layout_centerHorizontal="true"
android:textColor="#74cb51" />
</RelativeLayout>
How do I instantiate this Popup so I can change the content of the textviews inside? The information that displays the popup depends on what item he tap
public class Check extends AppCompatActivity {
ListView listView;
String[] days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
ArrayAdapter<CharSequence> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_check);
listView = (ListView) findViewById(R.id.listView);
//custom_list_row contains textview only
adapter = new ArrayAdapter<CharSequence>(this, R.layout.custom_list_row, days);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//pass the view
showPopUp(view);
}
});
}
public void showPopUp(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater layoutInflater = getLayoutInflater();
//this is custom dialog
//custom_popup_dialog contains textview only
View customView = layoutInflater.inflate(R.layout.custom_popup_dialog, null);
// reference the textview of custom_popup_dialog
TextView tv = (TextView) customView.findViewById(R.id.tvpopup);
//this textview is from the adapter
TextView text = (TextView) view.findViewById(R.id.textView);
// get the text of the view clicked
String day = text.getText().toString();
//set the text to the view of custom_popop_dialog.
tv.setText(day);
builder.setView(customView);
builder.create();
builder.show();
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With