gpt4 book ai didi

java - 上下文菜单可以打开 ImageView 吗?

转载 作者:行者123 更新时间:2023-11-30 11:36:06 25 4
gpt4 key购买 nike

注意:这个问题是不同的,不是完全重复的。这说明图像需要没有对话框弹出。甚至没有人费心去检查这个问题是否是重复的,而它不是。

我正尝试从上下文菜单中打开 ImageView ,但是我不知道如何操作。单击上下文菜单中的项目时,我需要显示 ImageView 。甚至可以从上下文菜单打开 ImageView 吗?人们建议改用对话框,但我想知道这种特定方式是否可行。先感谢您。这是我的代码:

package com.carouseldemo.main;

import android.app.Activity;


import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;

import android.view.MenuInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.carouseldemo.controls.Carousel;
import com.carouseldemo.controls.CarouselAdapter;
import com.carouseldemo.controls.CarouselAdapter.AdapterContextMenuInfo;
import com.carouseldemo.controls.CarouselAdapter.OnItemClickListener;
import com.carouseldemo.controls.CarouselAdapter.OnItemSelectedListener;
import com.carouseldemo.controls.CarouselItem;

public class MainActivity extends Activity {


@Override
public boolean onContextItemSelected(MenuItem item) {
int id = item.getItemId(); // you know which menu is clicked
ImageView popup = new ImageView(this);
//set the image
popup.setImageResource(R.drawable.cat); // or setImageBitmap ,
// or setImageUti etc
// this will make the ImageView fill the entire content area. If you don't want this wrap it with another layout
((FrameLayout) findViewById(android.R.id.content)).addView(popup);
return super.onContextItemSelected(item);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.testmenu1, menu);
// your code...
return true;} // true if you want the menu to be displayed; false otherwise

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// Just prepare ourself for unexpected arguments...

if (menuInfo == null) {
return;
}
if (!(menuInfo instanceof AdapterContextMenuInfo)) {
return;
}


AdapterContextMenuInfo mi = (AdapterContextMenuInfo) menuInfo;

switch (mi.position) {
case 0:

menu.add("Product 1");

menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
break;
case 1:
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
break;
case 2:
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
break;
case 3:
menu.add("mouse menu");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
break;
case 4:
menu.add("panda menu");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
break;
case 5:
menu.add("rabbit menu");
menu.add("Product 1");
menu.add("Product 1");
menu.add("Product 1");
break;
default:
break;
}
super.onCreateContextMenu(menu, v, menuInfo);
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


final Carousel carousel = (Carousel) findViewById(R.id.carousel);
carousel.setOnItemClickListener(new OnItemClickListener() {



public void onItemClick(CarouselAdapter<?> parent, View view,
int position, long id) {
CarouselItem item = (CarouselItem) parent.getChildAt(position);

// HERE: Force context menu
carousel.showContextMenuForChild(item);
Toast.makeText(
MainActivity.this,
String.format("%s has been clicked",
((CarouselItem) parent.getChildAt(position))
.getName()), Toast.LENGTH_SHORT).show();







}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {

// TODO Auto-generated method stub





}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
return false;
}});



carousel.setOnItemSelectedListener(new OnItemSelectedListener() {

public void onItemSelected(CarouselAdapter<?> parent, View view,
int position, long id) {

final TextView txt = (TextView) (findViewById(R.id.selected_item));

switch (position) {
case 0:
txt.setText("The cat (Felis catus), also known as the domestic cat or housecat to distinguish it from other felids and felines, is a small, usually furry, domesticated, carnivorous mammal that is valued by humans for its companionship and for its ability to hunt vermin and household pests. Cats have been associated with humans for at least 9,500 years, and are currently the most popular pet in the world. Owing to their close association with humans, cats are now found almost everywhere in the world.");
break;
case 1:
txt.setText("The hippopotamus (Hippopotamus amphibius), or hippo, from the ancient Greek for \"river horse\" (), is a large, mostly herbivorous mammal in sub-Saharan Africa, and one of only two extant species in the family Hippopotamidae (the other is the Pygmy Hippopotamus.) After the elephant, the hippopotamus is the third largest land mammal and the heaviest extant artiodactyl.");
break;
case 2:
txt.setText("A monkey is a primate, either an Old World monkey or a New World monkey. There are about 260 known living species of monkey. Many are arboreal, although there are species that live primarily on the ground, such as baboons. Monkeys are generally considered to be intelligent. Unlike apes, monkeys usually have tails. Tailless monkeys may be called \"apes\", incorrectly according to modern usage; thus the tailless Barbary macaque is called the \"Barbary ape\".");
break;
case 3:
txt.setText("A mouse (plural: mice) is a small mammal belonging to the order of rodents. The best known mouse species is the common house mouse (Mus musculus). It is also a popular pet. In some places, certain kinds of field mice are also common. This rodent is eaten by large birds such as hawks and eagles. They are known to invade homes for food and occasionally shelter.");
break;
case 4:
txt.setText("The giant panda, or panda (Ailuropoda melanoleuca, literally meaning \"black and white cat-foot\") is a bear native to central-western and south western China.[4] It is easily recognized by its large, distinctive black patches around the eyes, over the ears, and across its round body. Though it belongs to the order Carnivora, the panda's diet is 99% bamboo.");
break;
case 5:
txt.setText("Rabbits (or, colloquially, bunnies) are small mammals in the family Leporidae of the order Lagomorpha, found in several parts of the world. There are eight different genera in the family classified as rabbits, including the European rabbit (Oryctolagus cuniculus), cottontail rabbits (genus Sylvilagus; 13 species), and the Amami rabbit (Pentalagus furnessi, an endangered species on Amami, Japan)");

break;
}

}

public void onNothingSelected(CarouselAdapter<?> parent) {
}

});

registerForContextMenu(carousel);
}

}

最佳答案

如何弹出 ImageView 我已经在 comment posted 中向您展示了.

How can I make different images pop up when I select other items in the context menu? Right now, one picture shows up when I select one item in the context menu. How can I get a different picture to show up when I click different item in the context menu?

不要使用此 menu.add("Product 1"); 添加菜单选项。而是使用此选项:

menu.add(Menu.NONE, 1, Menu.None, "menu title");

第二个参数不是 1 值,而是为您添加到 ContextMenu 的每个菜单项传递一个唯一值。在 onContextItemSelected 方法中,您可以使用 item.getItemId(); 获取被点击的菜单的 ID,并根据它知道点击了哪个项目.根据该项目的 ID 分配图像。

The second thing is how to close the image view, as the picture is stuck on the screen and won't go away.

将您创建的 OnClickListenerOnTouchListener 分配给 ImageView 并在监听器的方法中删除 ImageView :

ImageView popup = new ImageView(this);    
popup.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
((FrameLayout) findViewById(android.R.id.content)).removeView(v);
}
});

关于java - 上下文菜单可以打开 ImageView 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14722698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com