I have an RecycleView
and it which shows the events that will happen in future and it worked fine (all the information showed up) but after that i added 2 more buttons to the layout after running it i had fewer events and i don't know why(i didn't change any code in the java file)
here is my code:
private void setupAdaptaterNew() {
mPostAdapterNew = new FirebaseRecyclerAdapter<Post, PostViewHolder>(
Post.class,
R.layout.item_layout_evenimente,
PostViewHolder.class,
mPostRef
) {
@Override
public void populateViewHolder(final PostViewHolder viewHolder, final Post model, final int position) {
final int EndOra = viewHolder.setEndOra(model.getEndOra());
final long EndZi = viewHolder.setEndZi(model.getEndZi());
final int EndLuna = viewHolder.setEndLuna(model.getEndLuna());
final int EndAn = viewHolder.setEndAn(model.getEndAn());
final ContentResolver cr = getApplicationContext().getContentResolver();
final ContentValues values = new ContentValues();
final ContentResolver crReminder = getApplicationContext().getContentResolver();
final ContentValues[] valuesReminder = {new ContentValues()};
final Uri[] event = new Uri[1];
final String headline = viewHolder.setHeadline(model.getHeadline());
final String locatie = viewHolder.setStrada(model.getStrada());
final String organizator = viewHolder.setOrganizator(model.getOrganizator());
final Button btnDeleteEvent = viewHolder.itemView.findViewById(R.id.BtnNuParticip);
final Button btnAddEvent = viewHolder.itemView.findViewById(R.id.BtnParticip);
final Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, EndOra);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.set(Calendar.MONTH, EndLuna);
cal.set(Calendar.DAY_OF_MONTH, (int) EndZi);
cal.set(Calendar.YEAR, EndAn);
if (Calendar.getInstance().before(cal)) {
StorageReference storageReference = FirebaseStorage.getInstance().getReferenceFromUrl(model.getImageUrl());
Glide.with(Evenimente.this)
.using(new FirebaseImageLoader())
.load(storageReference)
.into(viewHolder.postIV);
viewHolder.setHeadline(model.getHeadline());
viewHolder.setZiua(model.getZiua());
viewHolder.setLuna(model.getLuna());
viewHolder.setOra(model.getOra());
viewHolder.setOrganizator(model.getOrganizator());
viewHolder.setCategoria(model.getCategoria());
viewHolder.setStrada(model.getStrada());
viewHolder.setLocalitatea(model.getLocalitatea());
viewHolder.setPostDescriere(model.getDescriere());
} else {
viewHolder.itemView.setVisibility(View.GONE);
viewHolder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));
}
btnAddEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED ||
ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getApplicationContext(), "Permisii insuficiente.\n Va rugam sa activati permisiunea de CALENDAR", Toast.LENGTH_LONG).show();
} else {
long startMillis = 0;
long endMillis = 0;
//Start and End of event date
Calendar beginTime = Calendar.getInstance();
beginTime.set(EndAn, EndLuna, (int) EndZi, EndOra, 0);
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(EndAn, EndLuna, (int) EndZi, EndOra, 0);
endMillis = endTime.getTimeInMillis();
//Add Values
values.put(Events.DTSTART, startMillis);
values.put(Events.TITLE, headline);
values.put(Events.DESCRIPTION, "Description"); //TODO change description here!
TimeZone timeZone = TimeZone.getDefault();
values.put(Events.EVENT_TIMEZONE, timeZone.getID());
values.put(Events.CALENDAR_ID, 1);
values.put(Events.DTEND, endMillis);
values.put(Events.EVENT_LOCATION, locatie);
values.put(Events.ORGANIZER, organizator);
event[0] = cr.insert(Events.CONTENT_URI, values);
valuesReminder[0].put(CalendarContract.Reminders.DTSTART, startMillis);
Uri REMINDERS_URI_DAY = Uri.parse(getCalendarUriBase(true) + "reminders");
valuesReminder[0] = new ContentValues();
valuesReminder[0].put("event_id", Long.parseLong(event[0].getLastPathSegment()));
valuesReminder[0].put("method", 1);
valuesReminder[0].put("minutes", 1440);
Uri uriReminderDay = crReminder.insert(REMINDERS_URI_DAY, valuesReminder[0]);
Uri REMINDERS_URI_HOUR = Uri.parse(getCalendarUriBase(true) + "reminders");
valuesReminder[0] = new ContentValues();
valuesReminder[0].put("event_id", position);
valuesReminder[0].put("method", 1);
valuesReminder[0].put("minutes", 120);
Uri uriReminder = crReminder.insert(REMINDERS_URI_HOUR, valuesReminder[0]);
createDialogAddEvent(headline);
btnDeleteEvent.setVisibility(View.VISIBLE);
btnAddEvent.setVisibility(View.GONE);
}
}
});
btnDeleteEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Uri deleteUri = null;
deleteUri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, Long.parseLong(event[0].getLastPathSegment()));
int rows = getContentResolver().delete(deleteUri, null, null);
btnDeleteEvent.setVisibility(View.GONE);
btnAddEvent.setVisibility(View.VISIBLE);
//Create Dialog;
createDialogDeleteEvent(headline);
}
});
}
};
}
private String getCalendarUriBase(boolean eventUri) {
Uri calendarURI = null;
try {
if (android.os.Build.VERSION.SDK_INT <= 7) {
calendarURI = (eventUri) ? Uri.parse("content://calendar/") : Uri.parse("content://calendar/calendars");
} else {
calendarURI = (eventUri) ? Uri.parse("content://com.android.calendar/") : Uri
.parse("content://com.android.calendar/calendars");
}
} catch (Exception e) {
e.printStackTrace();
}
return calendarURI.toString();
}
And this is my RecycleView model:
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView 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="wrap_content"
android:layout_margin="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:gravity="center_vertical|right"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:gravity="center_vertical|right"
android:orientation="horizontal">
<!--Adding padding to the image view makes it easy to click -->
<LinearLayout
android:layout_width="60dp"
android:layout_height="90dp"
android:orientation="vertical"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<TextView
android:id="@+id/text_ziua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="10"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:id="@+id/text_luna"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="IAN"
android:textAlignment="center"
android:textSize="16sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="12dp"
android:text="---------"
android:textAlignment="center" />
<TextView
android:id="@+id/text_ora"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="10:00"
android:textAlignment="center"
android:textSize="12sp" />
</LinearLayout>
<ImageView
android:id="@+id/post_iv"
android:layout_width="90dp"
android:layout_height="90dp"
android:adjustViewBounds="false"
android:scaleType="centerCrop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="5dp">
<TextView
android:id="@+id/headline_event"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="-5dp"
android:layout_marginRight="5dp"
android:text="Numele complet al evenimentului"
android:textColor="@android:color/holo_orange_dark"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView16"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginRight="5dp"
android:layout_marginTop="1.5dp"
android:adjustViewBounds="false"
android:cropToPadding="false"
app:srcCompat="?android:attr/listChoiceIndicatorSingle" />
<TextView
android:id="@+id/textView60"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Categoria:"
android:textSize="12sp" />
<TextView
android:id="@+id/text_categoria"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Categoria"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView14"
android:layout_width="14dp"
android:layout_height="14dp"
android:layout_marginRight="5dp"
android:layout_marginTop="1.5dp"
android:adjustViewBounds="false"
android:cropToPadding="false"
app:srcCompat="@drawable/ic_people_black_24px" />
<TextView
android:id="@+id/text_organizator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Organizator:"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/text_strada"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:text="Strada:"
android:textAlignment="textEnd"
android:textSize="12sp" />
<TextView
android:id="@+id/text_localitatea"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:text="Localitatea"
android:textAlignment="textEnd"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/DescriereEveniment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:clickable="true"
android:autoLink="web"
android:visibility="gone" />
<Button
android:id="@+id/BtnParticip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Particip!"
/>
<Button
android:id="@+id/BtnNuParticip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nu m-ai particip"
/>
</LinearLayout>
So can you guys tell me why some values didn't show up after adding the buttons whit id: BtnParticip/BtnNuParticipt at the end of the xml file
Close The CardView, you have opened a CardView at the top of the xml file but did not close it.
Add this to the End of the file
</android.support.v7.widget.CardView>
I hope that helps.
You've set the height of inner LinearLayout
to match_parent
which is using all the space and buttons are not showing up.
Try this:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
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="wrap_content"
android:layout_margin="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:gravity="center_vertical|right"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" // Change it to wrap_content
android:orientation="vertical">
....
</LinearLayout>
<TextView
android:id="@+id/DescriereEveniment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:clickable="true"
android:autoLink="web"
android:visibility="gone" />
<Button
android:id="@+id/BtnParticip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Particip!"
/>
<Button
android:id="@+id/BtnNuParticip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nu m-ai particip"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.