填充动态微调从编辑文本的android [英] Populate Spinner dynamically in android from edit text

查看:101
本文介绍了填充动态微调从编辑文本的android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个微调,其中一些值是有来自strings.xml中,我想动态填充了微调,从编辑文本使用按钮的onclick事件,但不知它没有工作,我正在部队关闭每次。任何帮助将AP preciated。

 包com.example.expense;

进口android.app.Activity;
进口android.content.Intent;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.widget.ArrayAdapter;
进口android.widget.Button;
进口android.widget.EditText;
进口android.widget.Spinner;

公共类Expense3延伸活动{
    //私人TextView的T1;

    私人微调微调;
    私人的EditText文本;
    私人ArrayAdapter< CharSequence的>适配器;
    私人按钮Add按钮;

    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);

        文字=(EditText上)findViewById(R.id.widget4);
        Add按钮=(按钮)findViewById(R.id.add_new);

        微调=(微调)findViewById(R.id.hhj);

         适配器= ArrayAdapter.createFromResource(
                对此,R.array.planets_array,android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(适配器);





        this.addButton.setOnClickListener(新OnClickListener(){
            公共无效的onClick(视图v){

                addNewSpinnerItem();
         }

            });

        }

    保护无效addNewSpinnerItem(){
        // TODO自动生成方法存根
        CharSequence的textHolder =+ Text.getText()的toString()。
        adapter.add(textHolder);


    }
}
 

logcat的错误: -

  1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):致命异常:主要
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):java.lang.UnsupportedOperationException
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在java.util.AbstractList.add(AbstractList.java:411)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在java.util.AbstractList.add(AbstractList.java:432)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.widget.ArrayAdapter.add(ArrayAdapter.java:178)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在com.example.expense.Expense3.addNewSpinnerItem(Expense3.java:50)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在com.example.expense.Expense3 $ 1.onClick(Expense3.java:40)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.view.View.performClick(View.java:2408)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.view.View $ PerformClick.run(View.java:8816)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.os.Handler.handleCallback(Handler.java:587)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.os.Handler.dispatchMessage(Handler.java:92)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.os.Looper.loop(Looper.java:123)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在android.app.ActivityThread.main(ActivityThread.java:4627)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在java.lang.reflect.Method.invokeNative(本机方法)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在java.lang.reflect.Method.invoke(Method.java:521)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
1月5号至14日:07:19.934:ERROR / AndroidRuntime(802):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

正在试图添加的项目中,从资源创建的适配器,它会给你造成的不支持。为了解决这个问题,你可以创建一个空白的列表,然后从你的资源列表中添加项目。对于您可以使用 Arrays.asList()或者你可以做一个循环,并在列表中创建一个列表后,你将有添加单个项目来创建使用一个适配器列表中。

现在增加一个项目,在微调的适配器,您可以使用 adapter.add()方法添加微调适配器内的项目。 下面是解释如何创建一个适配器,在微调中添加项的例子。

 适配器=新的ArrayAdapter<字符串>(这一点,
android.R.layout.simple_spinner_item,阵列);
 

下面阵列是一个列表。

和在微调添加项目,你可以使用add方法。

  adapter.add(字符串插入到微调);
 

I have one spinner in which few values are there from strings.xml and I want to populate that spinner dynamically from edit text using onclick event of Button but somehow it's not working and I am getting Force Close everytime. Any help will be appreciated.

package com.example.expense;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

public class Expense3 extends Activity {
    //private TextView t1;

    private Spinner spinner;
    private EditText Text;
    private ArrayAdapter<CharSequence> adapter;
    private Button addButton;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Text = (EditText)findViewById(R.id.widget4);
        addButton = (Button)findViewById(R.id.add_new);

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

         adapter = ArrayAdapter.createFromResource(
                this, R.array.planets_array, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);





        this.addButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                addNewSpinnerItem();
         }

            });

        }

    protected void addNewSpinnerItem() {
        // TODO Auto-generated method stub
        CharSequence textHolder = "" + Text.getText().toString();
        adapter.add(textHolder);


    }
}

Logcat error:-

05-14 01:07:19.934: ERROR/AndroidRuntime(802): FATAL EXCEPTION: main
05-14 01:07:19.934: ERROR/AndroidRuntime(802): java.lang.UnsupportedOperationException
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.util.AbstractList.add(AbstractList.java:411)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.util.AbstractList.add(AbstractList.java:432)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.widget.ArrayAdapter.add(ArrayAdapter.java:178)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.example.expense.Expense3.addNewSpinnerItem(Expense3.java:50)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.example.expense.Expense3$1.onClick(Expense3.java:40)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.view.View.performClick(View.java:2408)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.view.View$PerformClick.run(View.java:8816)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.os.Handler.handleCallback(Handler.java:587)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.os.Looper.loop(Looper.java:123)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.lang.reflect.Method.invokeNative(Native Method)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at java.lang.reflect.Method.invoke(Method.java:521)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-14 01:07:19.934: ERROR/AndroidRuntime(802):     at dalvik.system.NativeStart.main(Native Method)

解决方案

You are trying to add item in the adapter which is created from resources so it will give you result unsupported. To solve this issue you can create a blank List and then add items in the List from your resources. For that you can use Arrays.asList() or you can make a loop and add individual items in the List and after creating a List you will have to create a adapter using that List.

Now to add a item in the adapter of the spinner you can use the adapter.add() method to add a item inside the spinner adapter. Here is a example that explain how you can create a adapter and add item in the spinner.

adapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_spinner_item, array);

Here array is a List.

And for add item in the spinner you can use the add method.

adapter.add("String to insert into spinner");

这篇关于填充动态微调从编辑文本的android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆