首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在单击时从微调器下拉列表中创建第二个活动?

如何在单击时从微调器下拉列表中创建第二个活动?
EN

Stack Overflow用户
提问于 2017-02-12 10:30:04
回答 2查看 46关注 0票数 0
代码语言:javascript
运行
复制
//MainActivity Details

package com.yay_or_nay.www.yayornayv1;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.spinner);

// Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.Categories_array, android.R.layout.simple_spinner_item);

// Specify the layout to use when the list of choices appears

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(this);
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

    String sSelected=parent.getItemAtPosition(position).toString();
    Toast.makeText(this,sSelected, Toast.LENGTH_SHORT).show();


}

 @Override
public void onNothingSelected(AdapterView<?> parent) {

}

}

我正在使用的XML文件

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>

代码语言:javascript
运行
复制
<string-array name="Categories_array">
    <item>Technology</item>
    <item>Science</item>
    <item>Fashion</item>
    <item>Photography</item>
    <item>Cars</item>
    <item>Lifestyle</item>
    <item>Food</item>
</string-array>

例如,当我点击"Technology“微调器数组按钮时,我向我的主要活动添加了什么?所以它可以创建一个新的活动动作?我正在尝试这样做,如果用户从微调器的下拉列表中单击一个选项,它将创建一个新的实例。

`

EN

回答 2

Stack Overflow用户

发布于 2017-02-12 17:24:46

代码语言:javascript
运行
复制
package project.com.spinnerclick;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class MainActivity extends AppCompatActivity 

private Spinner spinner;
List<String> categoriesArray;
Context mContext;

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

private void initializeUI() {
    //initialize context;
    mContext = this;
    //initialize list to pass it spinner adapter
    categoriesArray = new ArrayList<>();
    // assign values to categories list
    categoriesArray = Arrays.asList(getResources().getStringArray(R.array.categories_array));
    // initialize spinner component
    spinner = (Spinner) findViewById(R.id.spinner);
    //set spinner adapter
    spinner.setAdapter(new ArrayAdapter<>(mContext,
            android.R.layout.simple_spinner_dropdown_item, categoriesArray));


    //setting in item select Listener to spinner items
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
            // you can open any activity by getting position of current
            // selected item and open the related activity to this position
            switch (position) {
                case 1:
                    startActivity(new Intent(mContext, SecondActivity.class));
                    break;
                case 2:
                    startActivity(new Intent(mContext, Main2Activity.class));
                    break;
            }
            //second solution by getting the clicked item value
            // and open activity according this value
            String selectItem = spinner.getItemAtPosition(position).toString();
            Toast.makeText(mContext, selectItem, Toast.LENGTH_SHORT).show();


        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });


}
}

下面是XML格式的微调器值

代码语言:javascript
运行
复制
 <resources>
    <string name="app_name">SpinnerClick</string>
    <string-array name="categories_array">
        <item>select Item</item>
        <item>Technology</item>
        <item>Science</item>
        <item>Fashion</item>
        <item>Photography</item>
        <item>Cars</item>
        <item>Lifestyle</item>
        <item>Food</item>
    </string-array>
</resources>
票数 1
EN

Stack Overflow用户

发布于 2017-02-12 11:29:44

使用spinner.getSelectedItem.toString()而不是parent.getItemAtPosition…

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42183602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档