Я работаю над проектом Android, в котором я настроил cardView внутри recyclerView, где мне нужно иметь возможность установить текст выбранного cardView.
В настоящее время это работает:
Добавление CardView: Нажмите 3-точечное изображение (при просмотре карты) -> Нажмите в меню (Добавить просмотр карты) -> (Появится диалоговое окно оповещения).) введите текст -> добавлен новый вид карты и название, которое вы написали.Работает с позицией.
Удалить CardView: Нажмите 3-точечное изображение (при просмотре карты) -> Нажмите в меню (Удалить просмотр карты) -> выбранное просмотр карты удалит.Работает с позицией.
Изменить текст CardView: ЭТО НЕ РАБОТАЕТ.Мне нужна помощь, чтобы изменить текст на выбранной карте.Я могу настроить диалоговое окно с предупреждением для ввода текста, но как мне изменить текст выбранного просмотра карты?
Важная информация: changeLokation (вызывается в коде, в случае переключения), где яхочу изменить текст cardView.
Перевод меню:
- Изменить текст = navndre navn
Добавить датчики в Location = Tilføj Sensor to Lokation (В настоящее время недоступно).
Добавить CardView = Добавить CardView
Удалить CardView = Удалить CardView
Я ценю любую помощь.Заранее спасибо!
![enter image description here](https://i.stack.imgur.com/jJy0Ym.png)
КОД КАК СЛЕДУЮЩИЙ:
public class lokationRecyclerAdapter extends RecyclerView.Adapter<lokationRecyclerAdapter.RecyclerViewHolder> {
List<String> cardList;
String test;
public lokationRecyclerAdapter(List<String> cardList) {
this.cardList = cardList;
notifyDataSetChanged();
}
@Override
public RecyclerViewHolder onCreateViewHolder(final ViewGroup viewGroup, int i) {
View view = LayoutInflater.from( viewGroup.getContext() ).inflate( R.layout.lokationcardview, viewGroup, false );
return new RecyclerViewHolder( view );
}
public void deleteItem(int position) {
cardList.remove( position );
notifyItemRemoved( position );
notifyItemRangeChanged( position, cardList.size() );
}
@Override
public void onBindViewHolder(RecyclerViewHolder recyclerViewHolder, int position) {
recyclerViewHolder.cardView.setBackgroundResource( R.drawable.ic_circleshape );
recyclerViewHolder.lokationsName.setText( cardList.get( position ) );
}
@Override
public int getItemCount() {
return cardList.size();
}
class RecyclerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public int nummer;
private CardView cardView;
private Button menuButton;
private TextView lokationsName;
public void alertDialog(final View itemView) {
new AlertDialog.Builder( itemView.getContext() );
android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder( itemView.getContext() );
builder.setCancelable( true );
builder.setTitle( "Tilføj eller ændre navnet på lokation" );
builder.setMessage( "Hold styr på dine sensorer ved at oprette lokationer i form af eksempelvis lokaler." );
final EditText input = new EditText( itemView.getContext() );
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT );
input.setMaxLines( 1 );
input.setInputType( InputType.TYPE_CLASS_TEXT );
input.setLayoutParams( lp );
builder.setView( input );
builder.setPositiveButton( "Ja", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
test = input.getText().toString();
cardList.add( test );
//lokationsName.setText( test );
System.out.println( "TEST: " + cardList );
}
} );
builder.setNegativeButton( "Nej", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
} );
android.support.v7.app.AlertDialog dialog = builder.create();
dialog.show();
}
public RecyclerViewHolder(final View itemView) {
super( itemView );
cardView = (CardView) itemView.findViewById( R.id.lokationcard_view );
menuButton = (Button) itemView.findViewById( R.id.menuButton );
lokationsName = (TextView) itemView.findViewById( R.id.lokationsName );
itemView.setOnClickListener( this );
menuButton.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
final PopupMenu popupMenu = new PopupMenu( itemView.getContext(), menuButton );
popupMenu.getMenuInflater().inflate( R.menu.lokationpopmenu, popupMenu.getMenu() );
popupMenu.setOnMenuItemClickListener( new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.changeLokation:
System.out.println( "GET ADAPTER POSITION: " + getAdapterPosition() + " CARD LIST: " + cardList );
alertDialog( itemView );
break;
case R.id.addCardView:
String lokation = lokationsName.getText().toString();
/*if (lokation.equals( "TILFØJ LOKATION" )) {
Toast.makeText( itemView.getContext(), "Du skal ændre navnet på lokation først!", Toast.LENGTH_LONG ).show();
} else {*/
System.out.println( "GET ADAPTER POSITION: " + getAdapterPosition() );
//addItem(getAdapterPosition());
alertDialog( itemView );
System.out.println( "LOKATIONS NAME: " + lokation + " CARDLIST: " + cardList );
// }
break;
case R.id.deleteCardView:
if (cardList.size() > 1) {
deleteItem( getAdapterPosition() );
} else {
Toast.makeText( itemView.getContext(), "Du kan ikke slette den sidste CardView", Toast.LENGTH_LONG ).show();
}
break;
}
return true;
}
} );
popupMenu.show();
}
} );
}
}
}