Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中从文本输入框获取用户输入?_Java_Android_Android Layout_Android Widget - Fatal编程技术网

Java 如何在Android中从文本输入框获取用户输入?

Java 如何在Android中从文本输入框获取用户输入?,java,android,android-layout,android-widget,Java,Android,Android Layout,Android Widget,在一个android网站上,我发现了一篇关于如何创建一个文本输入小部件的文章,该小部件提供自动完成的建议。(以下是该网站的链接;它显示了所有代码) 有人能告诉我如何捕获用户输入的信息吗?例如,如果用户选择“Canada”,是否有办法知道“HelloAutoComplete.java”活动的结果?任何帮助都将不胜感激 public class HelloAutoComplete extends Activity { @Override protected void onCreate(Bundl

在一个android网站上,我发现了一篇关于如何创建一个文本输入小部件的文章,该小部件提供自动完成的建议。(以下是该网站的链接;它显示了所有代码)

有人能告诉我如何捕获用户输入的信息吗?例如,如果用户选择“Canada”,是否有办法知道“HelloAutoComplete.java”活动的结果?任何帮助都将不胜感激

public class HelloAutoComplete extends Activity {

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

    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
    String[] countries = getResources().getStringArray(R.array.countries_array);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, countries);
    textView.setAdapter(adapter);       

    textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            if (adapterView.getItemAtPosition(i).toString().equals("Canada")) {
                Toast.makeText(getApplicationContext(), "Result Canada", Toast.LENGTH_SHORT).show();
            }  //Does not get an out put when I select Canada.
        }

        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });

}  }
public类HelloAutoComplete扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AutoCompleteTextView textView=(AutoCompleteTextView)findViewById(R.id.autocomplete\u国家/地区);
String[]countries=getResources().getStringArray(R.array.countries\u数组);
ArrayAdapter=新的ArrayAdapter(此,R.layout.list_项,国家/地区);
setAdapter(适配器);
textView.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
if(adapterView.getItemAtPosition(i).toString()等于(“加拿大”)){
Toast.makeText(getApplicationContext(),“结果加拿大”,Toast.LENGTH_SHORT.show();
}//当我选择加拿大时,没有得到输出。
}
未选择公共无效(AdapterView AdapterView){
}
});
}  }
当前,您的代码没有将侦听器连接到文本视图

<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
              a:orientation="vertical"
              a:layout_width="fill_parent"
              a:layout_height="wrap_content"
              a:padding="5dp">

  <LinearLayout a:orientation="horizontal"
                a:layout_width="fill_parent"
                a:layout_height="wrap_content">
    <TextView a:layout_width="wrap_content"
              a:layout_height="wrap_content"
              a:text="Country"/>

    <AutoCompleteTextView a:id="@+id/autocomplete_country"
                          a:layout_width="fill_parent"
                          a:layout_height="wrap_content"
                          a:layout_marginLeft="5dp"/>
  </LinearLayout>

  <TextView a:id="@+id/selected_country"
            a:layout_height="wrap_content"
            a:layout_width="fill_parent"/>
</LinearLayout>
您需要(a)使用即时侦听器:

textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        if (adapterView.getItemAtPosition(i).toString().equals("Canada")) {
            Toast.makeText(getApplicationContext(), "Result Canada", Toast.LENGTH_SHORT).show();
        }
    }

    public void onNothingSelected(AdapterView<?> adapterView) {
    }
});
该活动获得一个新的
TextView
实例属性,我正在调用它
selectedCountry
。我没有展示它的声明。
onCreate
方法通过ID查找它,select侦听器只是更新它

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

    // Text view for selected country.
    selectedCountry = (TextView) findViewById(R.id.selected_country);

    textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            selectedCountry.setText(adapterView.getItemAtPosition(i).toString());
        }
        public void onNothingSelected(AdapterView<?> adapterView) { }
    });
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//选定国家/地区的文本视图。
selectedCountry=(TextView)findViewById(R.id.selected\u country);
textView.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
selectedCountry.setText(adapterView.getItemAtPosition(i.toString());
}
未选公共无效(AdapterView AdapterView){}
});
}
当前,您的代码没有将侦听器连接到文本视图

<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
              a:orientation="vertical"
              a:layout_width="fill_parent"
              a:layout_height="wrap_content"
              a:padding="5dp">

  <LinearLayout a:orientation="horizontal"
                a:layout_width="fill_parent"
                a:layout_height="wrap_content">
    <TextView a:layout_width="wrap_content"
              a:layout_height="wrap_content"
              a:text="Country"/>

    <AutoCompleteTextView a:id="@+id/autocomplete_country"
                          a:layout_width="fill_parent"
                          a:layout_height="wrap_content"
                          a:layout_marginLeft="5dp"/>
  </LinearLayout>

  <TextView a:id="@+id/selected_country"
            a:layout_height="wrap_content"
            a:layout_width="fill_parent"/>
</LinearLayout>
您需要(a)使用即时侦听器:

textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        if (adapterView.getItemAtPosition(i).toString().equals("Canada")) {
            Toast.makeText(getApplicationContext(), "Result Canada", Toast.LENGTH_SHORT).show();
        }
    }

    public void onNothingSelected(AdapterView<?> adapterView) {
    }
});
该活动获得一个新的
TextView
实例属性,我正在调用它
selectedCountry
。我没有展示它的声明。
onCreate
方法通过ID查找它,select侦听器只是更新它

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

    // Text view for selected country.
    selectedCountry = (TextView) findViewById(R.id.selected_country);

    textView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            selectedCountry.setText(adapterView.getItemAtPosition(i).toString());
        }
        public void onNothingSelected(AdapterView<?> adapterView) { }
    });
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//选定国家/地区的文本视图。
selectedCountry=(TextView)findViewById(R.id.selected\u country);
textView.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
已选择公共视图(AdapterView AdapterView、View视图、int i、long l){
selectedCountry.setText(adapterView.getItemAtPosition(i.toString());
}
未选公共无效(AdapterView AdapterView){}
});
}

最好的方法是设置一个“item selected listener”,当用户从可用条目中选择了内容时,它会通知您。看。有了它,您可以从他们选择的适配器(以及相反,您为该项的文本定义的任何内容)获取该项

例如:

textView.setOnItemSelectedListener( new OnItemSelectedListener() {
  @Override
  public void onItemSelected(AdapterView<?> adapterView, View selectedView, 
         int selectedPosition, long selectedId) {
         //do stuff here     
  }

  @Override
  public void onNothingSelected(AdapterView<?> arg0) {}
});
textView.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView,View Selected View,
int-selectedPosition,long-selectedId){
//在这里做事
}
@凌驾
未选择的公共无效(AdapterView arg0){}
});

最好的方法是设置一个“item selected listener”,当用户从可用条目中选择了内容时,它会通知您。看。有了它,您可以从他们选择的适配器(以及相反,您为该项的文本定义的任何内容)获取该项

例如:

textView.setOnItemSelectedListener( new OnItemSelectedListener() {
  @Override
  public void onItemSelected(AdapterView<?> adapterView, View selectedView, 
         int selectedPosition, long selectedId) {
         //do stuff here     
  }

  @Override
  public void onNothingSelected(AdapterView<?> arg0) {}
});
textView.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView AdapterView,View Selected View,
int-selectedPosition,long-selectedId){
//在这里做事
}
@凌驾
未选择的公共无效(AdapterView arg0){}
});
试试这个:

textView.getText().toString(); 
然后通过Toast显示它。

尝试以下操作:

textView.getText().toString(); 
然后通过Toast显示它。

使用:

textView.getText().toString()

使用:


textView.getText().toString()

非常感谢您的快速回复。该方法用于获取用户的输入。但我不知道如何将其与“if,else”语句一起使用。我已经用代码编辑了我之前的问题,请查看并告诉我如何更正。非常感谢您的时间。@NewGuy看到了更新的答案,与dmon的答案相同,因为它是正确的(1.5/1.6版本)。上面的代码对我来说是一样的。@Dave Newton我已经按照您解释的方式更改了我的程序,但是在我选择加拿大后,它仍然没有显示任何输出。您提供的代码是否应该嵌套在“protectedvoidoncreate(Bundle savedInstanceState)”中?如果我试图在外部将其声明为另一个函数,它会给我错误。我已经更新了我原来的问题上面,请让我知道我应该改变它。非常感谢。@NewGuy是的,它应该是
onCreate
方法的一部分。不知道还能告诉你什么;当你向
加拿大
,祝酒词应该马上就出现了——这对我来说很有用()。非常感谢;当我用箭头穿过时,它确实起作用。我用鼠标来选择