Android之Button 和下拉菜单的结合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之Button 和下拉菜单的结合相关的知识,希望对你有一定的参考价值。

package kongjian.text;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.*;

public class text extends Activity

private TextView textview,textview2;//定义控件

private EditText edittext;

private Spinner spinner;

private static final String[] countries="O型","A型","B型","AB型";

private ArrayAdapter<String> adapter;

public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button button=(Button)findViewById(R.id.button1);//创建对象并且找到id

edittext=(EditText) findViewById(R.id.editText1);//找到控件id

textview=(TextView) findViewById(R.id.textView1);

textview2=(TextView) findViewById(R.id.textView2);

spinner=(Spinner) findViewById(R.id.spinner1);

adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,countries);//将可选内容与ArrayAdapter连接 不理解!

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//设置下拉列表风格

spinner.setAdapter(adapter);//在下拉列表中添加内容

textview.setTextSize(20);//设置字体大小

button.setOnClickListener(new Button.OnClickListener()//侦听button控件



public void onClick(View v)//(View v)这个是什么意思



textview.setText("文本框中内容:"+edittext.getText().toString());//把edittext的内容赋值给textview





);

spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()



@Override

public void onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3)

textview2.setText("你的血型是:"+countries[arg2]);//textview2显示下拉列表内容 能不能选择后不显示在我点button后再在textview2中显示出来

arg0.setVisibility(View.VISIBLE);//这句是什么意思



@Override

public void onNothingSelected(AdapterView<?> arg0) //这个用来做什么的?





);
我要要的效果先选择下拉列表的内容但是不在textview2中显示出来当我按下button时在textview2中显示出我当前选择的下拉列表中的内容。求解释????

参考技术A 只要涉及到下拉列表等的 就要用到数组Array:
adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,countries);
spinner.setAdapter(adapter);//把你要显示的列表信息附加到spinner中,

public void onClick(View v)//(View v)这个是什么意思:你的单击事件,里边的view指你所单击的View对象

arg0.setVisibility(View.VISIBLE);//设置属性,可读不可读,可用不可用等;

你要实现在选择下拉菜单中的内容时不显示到Textview中,单击Button后才显示 你可以在选择的监听事件setOnItemSelectedListener中:
textview2.setText("你的血型是:"+countries[arg2]);//textview2显示下拉列表内容 能不能选择后不显示在我点button后再在textview2中显示出来
换成:新建的一个String类型比如str来保存这个信息
str="你的血型是:"+countries[arg2]
在OnClicklistener单击事件的时候把它显示出来呗:
public void onClick(View v)//(View v)这个是什么意思

textview.setText("文本框中内容:"+edittext.getText().toString());
textview2.setText(str);


希望对你能有所帮助本回答被提问者采纳

下拉菜单在悬停时消失(Firefox)

我有一个按钮而不是悬停有一个与之关联的下拉菜单。这在chrome上工作得非常好,我可以从下拉列表中选择项目,但在Firefox上,当我离开按钮点击下拉项目时,下拉消失的行为是不同的。

这是我的CSS和附带的JS小提琴。

button {
  position:relative;
}
.flags_home_middle {
    top: 68%;
    right: 23%;
    left: inherit;
}
.flags_item_features {
    -webkit-transition-duration: .8s;
    transition-duration: .8s;
    opacity: 0;
    visibility: hidden;
    padding: 3px !important;
    width: 211px;
    position: absolute;
    top: 51%;
    left: 23%;
}
.flags_item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.flags_home_middle {
    top: 68%;
    right: 23%;
    left: inherit;
}
.flags_item_features {
    -webkit-transition-duration: .8s;
    transition-duration: .8s;
    opacity: 0;
    visibility: hidden;
    padding: 3px !important;
    width: 211px;
    position: absolute;
    top: 51%;
    left: 23%;
}
.flags_item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.btn_buy_features:hover .flags_item_features {
    opacity: 1;
    visibility: visible;
    background: #EBEBEB;
    box-shadow: 0 3px 9px -2px rgba(0, 0, 0, .5);
}

https://jsfiddle.net/3nn7pc21/

答案

在我看来,Firefox在使用悬停时不会考虑具有新堆叠上下文的交互元素的子元素。为了克服这个问题,我将整个菜单放在按钮旁边,让你的容器充当亲戚父母。我还使用伪元素增加了安全区。

https://jsfiddle.net/3nn7pc21/4/

button {
  position:relative;
}

.buy-button-wrapper
{
  position: relative;  
}

.flags_home_middle {
    top: 68%;
    right: 23%;
    left: inherit;
}
.flags_item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.flags_home_middle {
    top: 68%;
    right: 23%;
    left: inherit;
}
.flags_item_features {
    -webkit-transition-duration: .8s;
    transition-duration: .8s;
    opacity: 0;
    visibility: hidden;
    padding: 3px !important;
    width: 211px;
    position: absolute;
    top: 10px;
    left: 10px;
}
.flags_item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.btn_buy_features:hover + .flags_item_features,
.flags_item_features:hover
{
    opacity: 1;
    visibility: visible;
    background: #EBEBEB;
    box-shadow: 0 3px 9px -2px rgba(0, 0, 0, .5);
}

.flags_item_features:before
{
  content: "";
  display: block;
  position: absolute;
  left: -10px;
  top: -10px;
  right: -10px;
  bottom: -10px;
}
<div class="buy-button-wrapper">
  <button type="button" class="btn-buy btn_buy_features custom_btn active" style="margin: 0 auto;">BUY</button>
  <div class="flags_item flags_item_features flags_home_middle">
    <div class="border_link">
      <span class="country_name"> <a href="http://shop-us.foobot.io/cart/add?id=8739494597" class="flag_lins"><img src="/wp-content/uploads/2017/01/1_2_2.png">US</a></span>
    </div>
    <div class="border_link">
      <span class="country_name"> <a href="http://shop-eu.foobot.io/cart/add?id=8346318915" class="flag_lins"><img src="/wp-content/uploads/2017/01/1_2_3.png">EU</a></span>
    </div>
    <div class="border_link">
      <span class="country_name"> <a href="http://shop-eu.foobot.io/cart/add?id=8819215683" class="flag_lins"><img src="/wp-content/uploads/2017/01/1_2_1.png">UK</a></span>
    </div>
  </div>
</div>

以上是关于Android之Button 和下拉菜单的结合的主要内容,如果未能解决你的问题,请参考以下文章

下拉菜单引导程序在平板电脑 android 中不起作用

下拉菜单在悬停时消失(Firefox)

饿了么Android版下拉筛选效果是如何实现的呢

Python TKinter 下拉菜单问题

bootstrap和JS实现下拉菜单

Bootstrap入门组件4:按钮组与下拉菜单结合