读取文本值和微调器值

Posted

技术标签:

【中文标题】读取文本值和微调器值【英文标题】:Read a text value and spinner value 【发布时间】:2012-11-27 13:48:20 【问题描述】:

我目前在 Eclipse 上运行以下 MainActivity.java 文件。

我的目的是获取用户输入和微调器值并形成一个类似www.ex.com?title=(user_inpu)&title_type=(spinner_input) 的网址。

到目前为止,我对这部分很感兴趣。如何从 EditText 和 Spinner 中获取文本值?

我已尝试编写此代码:

package com.example.myfirstapp;

import org.apache.commons.logging.Log;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

public class MainActivity extends Activity 

Button btn;
EditText edit;

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

    btn = (Button) findViewById(R.id.button);
    edit = (EditText) findViewById(R.id.edit_message);

    btn.setOnClickListener(
            new View.OnClickListener()
            
                public void onClick(View view)
                
                    Log.v("EditText", edit.getText().toString());
                
            );


Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.title_type,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) 
        Object item = parent.getItemAtPosition(pos);
    
    public void onNothingSelected(AdapterView<?> parent) 
    
);





我收到一个小错误:

没有为 MainActivity.java 定义方法 v(string, String)。

我已尝试将Log.v("EditText", edit.getText().toString()); 替换为Log.v("EditText", MainActivity.this.edit.getText().toString());,但错误仍然存​​在。

我该如何摆脱它?总的来说,这段代码会起作用吗?

【问题讨论】:

【参考方案1】:

您没有导入正确的 Log 类。

只需替换

import org.apache.commons.logging.Log;

通过

import android.util.Log;

您可能希望让您的spinner 成为活动的成员(就像按钮和文本字段一样),以便您可以从任何侦听器访问它。

我的意思是:

public class MainActivity extends Activity 

    private Button btn;
    private EditText edit;
    private Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_main);

        btn = (Button) findViewById(R.id.button);
        edit = (EditText) findViewById(R.id.edit_message);
        spinner = (Spinner) findViewById(R.id.spinner);

        btn.setOnClickListener(new View.OnClickListener() 
            public void onClick(View view) 
                Log.v("EditText", edit.getText().toString());
                Log.v("Spinner", spinner.getSelectedItem().toString());
            
        );

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.title_type, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    

【讨论】:

是的。我得到了它。事实上,在你回答之前几秒钟。:-) 通过说让微调器成为活动的成员,我想我需要在 btn.setOnCLickListener() 中插入微调器代码,对吧? 我的 LogCat 既不显示文本输入也不显示微调器值。它说 Unexpected Value..我应该在哪里检查输出?? 但是你为什么把extendsActivity改成extends PreferenceActivity。使用preferenceActivity,我看到了很多错误。当我切换回扩展活动时,我没有看到任何错误。但是我应该在哪里看到输出?我的 logCat 没有显示它.. 单击按钮时应该会在 LogCat 中看到输入值 在 Logcat 的文本字段下,我看到的只是来自 nativeGetEnabledTags 的 Unexpected Value 并且它继续运行...顺便说一句,您在 spinner.setAdapter(适配器,我在微调器之后添加了两个 .setOnItemSelectedListener 方法。没问题吧?

以上是关于读取文本值和微调器值的主要内容,如果未能解决你的问题,请参考以下文章

旋转后微调器值消失

将微调器值右对齐而不是左对齐

如何更改各种微调器值的 EditText 字段

如何将微调器值发送到下一页?

当我使用 if else 然后将值传递给设置 onClick 时,如何获取微调器值?

将微调器值从片段传递到活动