當前位置:首頁 » 安卓系統 » android下拉列表控制項

android下拉列表控制項

發布時間: 2022-02-17 19:42:49

A. android:控制項autocompletetextview 下拉列表的自動提示並且控制另一個下

AutoCompleteTextview 是用來做輸入過慮用的,在Android中,下拉列表應該使用Spinner這個才是下拉選擇控制項。

B. Android開發 怎樣實現spinner下拉菜單由其他控制項觸發

Button button = (Button )findViewById(R.id....);
button.setonclickListener(new OnClickListener(){
public void onClick(View arg0) {
spinner.performClick();
}
});

C. Android之Button 和下拉菜單的結合

只要涉及到下拉列表等的 就要用到數組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);
}

希望對你能有所幫助

D. 如何打造Android自定義的下拉列表框控制項

實現方式: 1、水平布局一個TextView和一個ImageView(小黑箭頭) 2、實現點擊ImageView的單擊事件,彈出PopupWindow 3、PopupWindow中實現下拉列表 關鍵代碼示例: 1、布局 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView/> <ImageView /> </LinearLayout> 2、單擊事件 image.setBackgroundResource(R.drawable.gerendang_jiantou); image.setOnClickListener(new OnClickListener() { public void onClick(View v) { //彈出popupwindow } }); 3、pupupwindow相關代碼 ListView lv = new ListView(this); adapter = new OptionsAdapter(context, datas); // 根據數據,設置下拉框顯示 list.setAdapter(adapter); /** * 兩種不同長度的下拉框,主要是為了適應屏幕的大小 */ if (p_width > 0) { pWindow = new PopupWindow(v, par.getWidth(), 150); } else { pWindow = new PopupWindow(v, par.getWidth(), 300); } pWindow.setFocusable(true); //能夠焦點獲得 pWindow.setBackgroundDrawable(new BitmapDrawable()); //設置背景 pWindow.setOutsideTouchable(true); //外部點擊關閉 pWindow.update(); //更新位置

E. android中如何將下拉列表中獲取的值放到編輯框中

finish(); return true; 界面都已經被關掉了呀, 怎麼還能放進框里呢, 需要到onactivityResult里得到這個界面傳遞回去的數據,取出來,再給edittext.setText 設置進去才能顯示的。

F. android下拉列表框能自己輸入內容嗎

android 下拉列表框是不允許輸入內容,可以通過代碼的形式進行填充數據。

G. 如何打造Android自定義的下拉列表框控制項

一、概述

Android中的有個原生的下拉列表控制項Spinner,但是這個控制項有時候不符合我們自己的要求,

比如有時候我們需要類似windows 或者web網頁中常見的那種下拉列表控制項,類似下圖這樣的:

這個時候只有自己動手寫一個了。其實實現起來不算很難,

本文實現的方案是採用TextView +ImageView+PopupWindow的組合方案。

先來看看我們的自己寫的控制項效果圖吧:(源碼在文章下面最後給出哈!)

二、自定義下拉列表框控制項的實現

1. 自定義控制項用到的布局文件和資源:

結果框的布局頁面:dropdownlist_view.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:id="@+id/compound"
android:background="@drawable/dropdown_bg_selector" >

<TextView
android:id="@+id/text"
android:layout_width="250dp"
android:layout_height="40dp"
android:paddingLeft="10dp"
android:text="文本文字"
android:gravity="center_vertical"
android:textSize="14sp"
android:padding="5dp"
android:singleLine="true" />
<ImageView
android:id="@+id/btn"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_toRightOf="@+id/text"
android:src="@drawable/dropdown"
android:padding="5dp"
android:layout_centerVertical="true"
android:gravity="center"/>
</RelativeLayout>

下拉彈窗列表布局頁面:dropdownlist_popupwindow.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@+id/listView"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:divider="#666666"
android:dividerHeight="1dp"
></ListView>

</LinearLayout>

selector資源文件:

dropdown_list_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/dropdownlist_item_press"/>
<item android:drawable="@color/dropdownlist_item"/>
</selector>

dropdown_bg_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/dropdownlist_press"/>
<item android:drawable="@color/dropdownlist_bg"/>
</selector>

2. 自定義下拉列表框控制項類的實現:

我們採用了TextView+ImageView+PopupWindow的組合方案,所以我的自定義控制項需要重寫ViewGroup,由於我們已經知道了,布局方向為豎直方向,所以這里,

我直接繼承LinearLayout來寫這個控制項。具體實現代碼如下:
package com.czm.xcdropdownlistview;

import java.util.ArrayList;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;

@SuppressLint("NewApi")
/**
* 下拉列表框控制項
* @author caiming
*
*/
public class XCDropDownListView extends LinearLayout{

private TextView editText;
private ImageView imageView;
private PopupWindow popupWindow = null;
private ArrayList<String> dataList = new ArrayList<String>();
private View mView;
public XCDropDownListView(Context context) {
this(context,null);
// TODO Auto-generated constructor stub
}
public XCDropDownListView(Context context, AttributeSet attrs) {
this(context, attrs,0);
// TODO Auto-generated constructor stub
}
public XCDropDownListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
initView();
}

public void initView(){
String infServie = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater layoutInflater;
layoutInflater = (LayoutInflater) getContext().getSystemService(infServie);
View view = layoutInflater.inflate(R.layout.dropdownlist_view, this,true);
editText= (TextView)findViewById(R.id.text);
imageView = (ImageView)findViewById(R.id.btn);
this.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(popupWindow == null ){
showPopWindow();
}else{
closePopWindow();
}
}
});
}
/**
* 打開下拉列表彈窗
*/
private void showPopWindow() {
// 載入popupWindow的布局文件
String infServie = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater layoutInflater;
layoutInflater = (LayoutInflater) getContext().getSystemService(infServie);
View contentView = layoutInflater.inflate(R.layout.dropdownlist_popupwindow, null,false);
ListView listView = (ListView)contentView.findViewById(R.id.listView);

listView.setAdapter(new XCDropDownListAdapter(getContext(), dataList));
popupWindow = new PopupWindow(contentView,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(getResources().getDrawable(R.color.transparent));
popupWindow.setOutsideTouchable(true);
popupWindow.showAsDropDown(this);
}
/**
* 關閉下拉列表彈窗
*/
private void closePopWindow(){
popupWindow.dismiss();
popupWindow = null;
}
/**
* 設置數據
* @param list
*/
public void setItemsData(ArrayList<String> list){
dataList = list;
editText.setText(list.get(0).toString());
}
/**
* 數據適配器
* @author caiming
*
*/
class XCDropDownListAdapter extends BaseAdapter{

Context mContext;
ArrayList<String> mData;
LayoutInflater inflater;
public XCDropDownListAdapter(Context ctx,ArrayList<String> data){
mContext = ctx;
mData = data;
inflater = LayoutInflater.from(mContext);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
// 自定義視圖
ListItemView listItemView = null;
if (convertView == null) {
// 獲取list_item布局文件的視圖
convertView = inflater.inflate(R.layout.dropdown_list_item, null);

listItemView = new ListItemView();
// 獲取控制項對象
listItemView.tv = (TextView) convertView
.findViewById(R.id.tv);

listItemView.layout = (LinearLayout) convertView.findViewById(R.id.layout_container);
// 設置控制項集到convertView
convertView.setTag(listItemView);
} else {
listItemView = (ListItemView) convertView.getTag();
}

// 設置數據
listItemView.tv.setText(mData.get(position).toString());
final String text = mData.get(position).toString();
listItemView.layout.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
editText.setText(text);
closePopWindow();
}
});
return convertView;
}

}
private static class ListItemView{
TextView tv;
LinearLayout layout;
}

}

三、如何使用該自定義下拉列表框控制項

使用該控制項和使用普通的自帶的控制項一樣,首先需要在布局文件中引用該控制項:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.czm.xcdropdownlistview.MainActivity"
tools:ignore="MergeRootFrame" >

<com.czm.xcdropdownlistview.XCDropDownListView
android:id="@+id/drop_down_list_view"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />

</RelativeLayout>

其次,就是在代碼中使用該控制項:
package com.czm.xcdropdownlistview;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
/**
* 使用下拉列表框控制項 示例
* @author caiming
*
*/
public class MainActivity extends Activity {

XCDropDownListView dropDownListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

dropDownListView = (XCDropDownListView)findViewById(R.id.drop_down_list_view);
ArrayList<String> list = new ArrayList<String>();
for(int i = 0;i< 6;i++){
list.add("下拉列表項"+(i+1));
}
dropDownListView.setItemsData(list);

}

}

H. 如何打造Android自定義的下拉列表框控制項

實現方式:
1、水平布局一個TextView和一個ImageView(小黑箭頭)
2、實現點擊ImageView的單擊事件,彈出PopupWindow
3、PopupWindow中實現下拉列表
關鍵代碼示例:
1、布局

<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView/>
<ImageView />
</LinearLayout>
2、單擊事件

image.setBackgroundResource(R.drawable.gerendang_jiantou);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//彈出popupwindow
}
});
3、pupupwindow相關代碼
ListView lv = new ListView(this);
adapter = new OptionsAdapter(context, datas); // 根據數據,設置下拉框顯示
list.setAdapter(adapter);

/**
* 兩種不同長度的下拉框,主要是為了適應屏幕的大小
*/
if (p_width > 0) {
pWindow = new PopupWindow(v, par.getWidth(), 150);
} else {
pWindow = new PopupWindow(v, par.getWidth(), 300);
}
pWindow.setFocusable(true); //能夠焦點獲得
pWindow.setBackgroundDrawable(new BitmapDrawable()); //設置背景
pWindow.setOutsideTouchable(true); //外部點擊關閉
pWindow.update(); //更新位置

I. android 下拉列表

Android的下拉列表是用Spinner 這個類來實現的。
Spinner的使用(分別使用ArrayAdapter和自定義Adapter實現),使用ArrayAdapter進行適配數據:
1:首先定義一個布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>

2:建立數據源,使用數組,這些數據將會在Spinner下來列表中進行顯示:
<?xml version="1.0" encoding="utf-8"?>

<resources>
<string-array name="spinnername">
<item>北京</item>
<item>上海 </item>
<item>廣州</item>
<item>深圳</item>
</string-array>
</resources>

3:接著在Activity中加入如下的代碼(使用了系統定義的下拉列表的布局文件,當然也可以自定義)
// 初始化控制項

mSpinner = (Spinner) findViewById(R.id.spinner1);
// 建立數據源
String[] mItems = getResources().getStringArray(R.array.spinnername);
// 建立Adapter並且綁定數據源
ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems);
//綁定 Adapter到控制項
mSpinner.setAdapter(_Adapter);

J. android 里怎麼用adapter寫下拉菜單選擇

所使用的工具:電腦

開發工具:eclipse for Android , Android Studio

用adapter 寫下拉菜單需要我們自己進行自定義,具體步驟如下:


1、自定義類,類成員與需要顯示的欄位一致;

publicclassManufacture{
privateStringname;

publicManufacture(Stringname){
super();
this.name=name;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}
}

2、自定義adapter並繼承自BaseAdapter實現相應方法,下面是貼出的代碼示例:

{
privateList<Manufacture>mList;
privateContextcontext;
//創建有參構造,參數需要傳入兩個1.自定義類類型的List,上下文參數
publicMnufactureAdapter(List<Manufacture>mList,Contextcontext){
super();
this.mList=mList;
this.context=context;
}
//返回長度位所定義List的長度
@Override
publicintgetCount(){
returnmList.size();
}
//返回位置為自定義list當前位置
@Override
publicObjectgetItem(intposition){
returnmList.get(position)
;
}
//返回條目的ID
@Override
publiclonggetItemId(intposition){
returnposition;
}
//這里getView需方法需要重點說明和注意:
@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
//創建一個LayoutInflater並傳入上下文
LayoutInflaterlinflater=LayoutInflater.from(context);
//添加自定義item布局到convertView;(item內容和樣式通過自定義方式實現)
convertView=linflater.inflate(R.layout.spinner_item_layout,null);
//初始化Item中控制項
TextViewtextView=(TextView)convertView.findViewById(R.id.manufacture_list);
//設置控制項顯示內容
textView.setText(mList.get(position).getName());

returnconvertView;
}

}

3、在activity中需要添加如下代碼:

//初始化布局文件中的spinner
SpinnermSpinner=(Spinner)findViewById(R.id.spinner1);
//初始化自定義的List,並往裡面添加數據
List<Manufacture>manufacture=newArrayList<Manufacture>();
接著就是添加數據,在項目中我是添加的從網路上下載的數據解析之後進行添加的,具體的添加方式根據具體需要進行添加,我把自己的貼在下面供大家參考:
for(inti=0;i<list.size();i++){
//添加數據源
manufacture.add(newManufacture(list.get(i).getName()));
}
//實例化一個之前自定義的adapter並向裡面添加數據
MnufactureAdaptermadapter=newMnufactureAdapter(manufacture,ProctManageActivity.this);
參數說明:第一個參數是添加數據源後的List,第二個是當前activity的上下文。
最後一步,向spinner裡面添加數據源
mSpinner.setAdapter(madapter);
熱點內容
個性網源碼 發布:2025-02-07 13:49:42 瀏覽:473
sql連接update 發布:2025-02-07 13:46:33 瀏覽:575
資料庫導出sql語句 發布:2025-02-07 13:45:26 瀏覽:148
traceandroid 發布:2025-02-07 13:43:05 瀏覽:882
微信公眾平台開發java 發布:2025-02-07 13:31:13 瀏覽:935
中國紅網格解壓視頻 發布:2025-02-07 13:28:48 瀏覽:862
c語言軟體源代碼 發布:2025-02-07 13:28:44 瀏覽:186
2016php 發布:2025-02-07 13:24:10 瀏覽:327
昱科環球存儲科技深圳有限公司 發布:2025-02-07 13:22:49 瀏覽:895
安卓平板生產力如何 發布:2025-02-07 13:07:20 瀏覽:350