一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android學習筆記:Activity

 487qq 2012-02-21

Android學習筆記:Activity-Spinner

分類: Android 406人閱讀 評論(0) 收藏 舉報

例子一:Spinner的基本實現(xiàn)方法

步驟一:編寫Android XML文件

<LinearLayout …… >
  <TextView android:id="@+id/spinner_label" …… />
   <!-- 經過我們的測試android:drawSelectorOnTop="true | false"不起作用,因此此參數(shù)可以不設置 -->
   <Spinner android:id="@+id/spinner"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"  />
</LinearLayout>

步驟二:源代碼

1)設置Spinner之中的元素內容,采用了ArrayAdapter來描述,并通過setApdater()來設置adapter

private String[] items=   {"lorem", "ipsum", "dolor", "sit", "amet",….
ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,items); //第二個參數(shù)表示spinner沒有展開前的UI類型
spin.setAdapter(aa); //之前已經通過Spinner spin = (Spinner) findViewById(R.id.spinner);來獲取spin對象

2) 設置spinner展開的方式,在上面,我們將通過設置ArrayAdapter的第二個參數(shù),設置了spinner沒有展開前的UI格 式,simple_spinner_item是textview的label方式,而simple_spinner_dropdown_item這是點擊 圓圈選擇方式。在這個例子中,我們將展開方式設置為點擊圓圈選擇,如圖所示。關于格式,我們會在第二個例子中進行試驗。

aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

3)使用setOnItemSelectedListener()來設置Spinner的點擊觸發(fā)的callback函數(shù),有onItemSelected和onNothingSelected兩個接口需要具體給出。

public class SpinnerTest extends Activity implements OnItemSelectedListener{

   protected void onCreate(Bundle savedInstanceState) {
        ……
        spin.setOnItemSelectedListener(this);
        … …
    }
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,  long arg3) {
        // TODO Auto-generated method stub
        label.setText(items[arg2]); //label是我們設置的第一個TextView widget,arg2就是元素的pos需要
       
    }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
        label.setText("");
    }      
}

例子二:Spinner的UI格式

步驟一:編寫Android XML文件

在例子來自Android官方網站的tutorial的例子。我們下載SDK的文檔中也帶有,可以本地查看。這里我們希望item的元素內容設置都在XML中定義,方便修改以及多國語言版本的實現(xiàn)。

在strings.xml中

<resources>
    <string name="planet_prompt">太陽系行星:</string>
    <string-array name="planets_arry">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
    </string-array>
</resources>

在layout的xml中:

<LinearLayout … >
  <TextView … />
  <Spinner android:id="@+id/spinner4"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:prompt="@string/planet_prompt" />
</LinearLayout>

在Spinner中,我們設置了prompt,根據@string在strings.xml中查找,prompt的內容為“太陽系行星:”在我們點擊展開Spinner中,我們可以看到在最上面增加了提示,如上圖所示。

步驟二:編寫源代碼

1)設置spinner的adapter,并導入數(shù)據,以及設置UI格式。

Spinner spin=(Spinner)findViewById(R.id.spinner4);
//createFromResouce將返回ArrayAdapter<CharSequence>,具有三個參數(shù):
//第一個是conetxt,也就是application的環(huán)境,可以設置為this,也可以通過getContext()獲取.
//第二個參數(shù)是從data source中的array ID,也就是我們在strings中設置的ID號;
//第三個參數(shù)是spinner未展開的UI格式
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_arry, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(adapter);

在 ArrayApdater中我們設置了為展開的方式,android提供了兩種格式,當然我們也可以通過Android XML文件進行設置,如同ListView一樣,下圖分別是設置android.R.layout.simple_spinner_item和 android.R.layout.simple_spinner_dropdown_item的顯示,一般而言,我們都會顯示前者。

 

如 果我們不通過setDropDownViewResource進行設置,則展開的方式缺省同未展開的方式,否則必須進行設置,下圖分別是設置 android.R.layout.simple_spinner_item和 android.R.layout.simple_spinner_dropdown_item??梢钥闯鲈谙旅孀筮叺耐局?,展開和未展開的設置是不一樣 的。

 

2)設置回調函數(shù)

這里采用了一個類來描述回調處理

public class MyOnItemSelectedListener implements OnItemSelectedListener{
    @Override
    public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3){
        // 在這里我們復習一下Toast的用法 
        Toast.makeText(parent.getContext(),
                                  "The planet is "+  parent.getItemAtPosition(pos).toString(),
                                   Toast.LENGTH_LONG).show();
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) { 
        //nothing to do
    }
}

在程序中使用spin.setOnItemSelectedListener(new MyOnItemSelectedListener());來設置回調對象即可。

例子三:自定義格式和數(shù)據

在上面的例子中,為展開和展開后的UI格式采用了Android自定義的格式,都可以自行定義。

ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textView,list);

在 上面的例子中,我們使用某個ArrayAdapter的構造函數(shù),其中第一個參數(shù)是context,第二個參數(shù)指定下來菜單的每個條目的樣式,第三個參數(shù) 指定了在每個條目樣式中用于顯示數(shù)據的TextView的Id,第四個參數(shù)為列表的數(shù)據來源(可以是任何格式,toString()就是相應的賦值)。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日本高清视频在线观看不卡 | 亚洲综合日韩精品欧美综合区| 日本精品中文字幕人妻| 亚洲最新av在线观看| 内射精子视频欧美一区二区| 91麻豆精品欧美视频| 美女被后入福利在线观看| 国产精品免费不卡视频| 好吊日视频这里都是精品| 国产精品日韩欧美一区二区| 国产一区二区三区不卡| 亚洲国产av精品一区二区| 欧美一区二区三区视频区| 欧美精品激情视频一区| 国产在线一区二区三区不卡| 欧美一区二区三区在线播放| 亚洲视频在线观看免费中文字幕 | 国产日韩精品欧美综合区| 中文精品人妻一区二区| 91麻豆精品欧美视频| 视频在线免费观看你懂的| 激情内射日本一区二区三区| 五月婷婷综合激情啪啪| 色婷婷中文字幕在线视频| 欧美激情视频一区二区三区| 东京热加勒比一区二区三区| 日韩欧美精品一区二区三区| 国产专区亚洲专区久久| 亚洲国产精品一区二区毛片| 免费在线成人午夜视频| 久久精品蜜桃一区二区av| 亚洲美女国产精品久久| 国产在线小视频你懂的| 亚洲中文字幕在线观看黑人| 国产精品第一香蕉视频| 亚洲中文字幕在线观看黑人| 一区二区福利在线视频| 欧美三级大黄片免费看| 国产亚洲欧美日韩国亚语| 欧美日韩国产精品黄片| 国产精品午夜福利在线观看|