0
メニューオプションを有効にする3ドットをクリックすると編集と削除の2つのオプションが開き、このようなポップアップを作成します。しかし、私はそれを設定しようとして問題に直面している。 3ドットを押すと、下にポップアップが表示されます。 3つの点の隣に表示されます。android
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/edit_post"
android:orderInCategory="100"
android:title="Edit"/>
<item
android:id="@+id/Delete_post"
android:orderInCategory="100"
app:showAsAction="never"
android:title="Delete"/>
</menu>
Javaコード:
private Button options = (Button) view.findViewById(R.id.OptionsButton);
options.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(activity, options);
popup.getMenuInflater().inflate(R.menu.options_popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if (id == R.id.edit_post) {
//editpost here
} else if (id == R.id.Delete_post) {
Toast.makeText(activity, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
//delete post here
}
return true;
}
});
popup.show();//showing popup menu
}
}); //closing the setOnClickListener method
アダプターコード:ポップアップオプションの
public class profileadapter extends RecyclerView.Adapter<profileadapter.MyViewHolder> {
private List<ProfileModel> profileModelList;
private ProfileModel profileModel;
private Activity activity;
private Button options;
public profileadapter(Activity activity, List<ProfileModel> profileModelList) {
this.activity = activity;
this.profileModelList = profileModelList;
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView users_name, users_post_title, home_location, home_date, /*complaint_status, */
home_like_textview,
home_comment_textview, home_share_textview;
public ImageView complaint_posted;
public MyViewHolder(View view) {
super(view);
users_name = (TextView) view.findViewById(R.id.users_name);
users_post_title = (TextView) view.findViewById(R.id.users_post_title);
home_location = (TextView) (view).findViewById(R.id.home_location);
home_date = (TextView) (view).findViewById(R.id.home_date);
home_like_textview = (TextView) (view).findViewById(R.id.home_like_textview);
home_comment_textview = (TextView) (view).findViewById(R.id.home_comment_textview);
home_share_textview = (TextView) (view).findViewById(R.id.home_share_textview);
complaint_posted = (ImageView) (view).findViewById(R.id.complaint_posted);
options = (Button) view.findViewById(R.id.OptionsButton);
options.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(activity, options);
popup.getMenuInflater().inflate(R.menu.options_popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if (id == R.id.edit_post) {
//editpost here
} else if (id == R.id.Delete_post) {
Toast.makeText(activity, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
//delete post here
}
return true;
}
});
popup.show();//showing popup menu
}
}); //closing the setOnClickListener method
complaint_posted.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(activity, DetailPost.class);
activity.startActivity(intent);
}
});
}
}
@Override
public profileadapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(activity)
.inflate(R.layout.profile_cardview, parent, false);
return new profileadapter.MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(profileadapter.MyViewHolder holder, int position) {
ProfileModel post = (profileModelList.get(position));
holder.users_name.setText(post.getUsers_email());
holder.users_post_title.setText(post.getPost_title());
holder.home_location.setText(post.getLocation());
holder.home_date.setText(String.valueOf(post.getPost_date()));
// Log.i("Date", post.getPost_date());
// holder.complaint_status.setText(post.getPost_status());
holder.home_like_textview.setText(String.valueOf(post.getPost_like()));
holder.home_comment_textview.setText(String.valueOf(post.getPost_comment()));
holder.home_share_textview.setText(String.valueOf(post.getPost_share()));
Log.i("position", String.valueOf(position));
holder.complaint_posted.setImageResource(post.getComplaint_posted());
// holder.home_users_image.setImageResource(post.getUsers_profile());
}
@Override
public int getItemCount() {
return profileModelList.size();
}
}
レイアウト:
にする必要がありますが、それは画像の下部にある3つのドットの横に表示されますように...あなたのJavaコードを表示ルックス、cricket_007 @ください –
編集します。 Javaコードを見てください。 – Sara
コードの詳細は、ください。あなたはいくつかのCardViewとリストアダプターを使用しているようです。コードにはメニューが表示されていますが、どのオプションメニューボタンをクリックリスナーに接続しましたか? –