如何通过微调对象给其他活动的Andr​​oid / Java的 [英] How to Pass Spinner Objects to other activity in Android/Java

查看:115
本文介绍了如何通过微调对象给其他活动的Andr​​oid / Java的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试了各种方法来回回互联网微调所选项目传递给其他类和显示文本视图

下面是我的code。
每当我打开我的应用程序,它崩溃。
您的建议是大大AP preciated。
先谢谢了。

这是我的第一类BuddyActivity

  @覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);
   按钮buttonSubmit =(按钮)findViewById(R.id.buttonGo);
    buttonSubmit.setOnClickListener(新OnClickListener(){
      公共无效的onClick(视图v){
       微调transportSpinner =(微调)findViewById(R.id.spinnerSection);
          意图I =新意图(BuddyActivity.this.getApplicationContext(),search_project.class);
          i.putExtra(transportSpinnerValue,transportSpinner.getSelectedItem()的toString());
          BuddyActivity.this.startActivity(ⅰ);      }
    });
}
 ;

这是我的第二类:

  @覆盖
公共无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.search_project);    捆绑额外= getIntent()getExtras()。
    串transportItemChosen = extras.getString(transportSpinnerValue);}


解决方案

第1步:创建微调按钮布局文件

 <微调
    机器人:ID =@ + ID / email_spinner
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =WRAP_CONTENT/><按钮
    机器人:ID =@ + ID / NextActivity
    机器人:文字=装载
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT>

第二步:创建一个RES /价值/ email.xml。该文件将保存值的列表下拉。

 <?XML版本=1.0编码=UTF-8&GT?;
<资源>
<字符串数组名=email_array>
    <项目>家庭和LT; /项目>
    <项目>办公及LT; /项目>
    <项目>其他< /项目>
< /字符串数组>
< /资源>

第3步:在程序中创建微调对象,它映射到布局文件。建立相应的适配器。我在我的主要活动片段。您可以自定义低于code,如果你只使用活动。

  @覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,
                         捆绑savedInstanceState){
    查看rootView = inflater.inflate(R.layout.fragment_main,集装箱,FALSE);    最后的微调微调=(微调)rootView.findViewById(R.id.email_spinner);    //使用字符串数组和默认微调布局的ArrayAdapter
    ArrayAdapter<&CharSequence的GT;适配器= ArrayAdapter.createFromResource(getActivity(),
            R.array.email_array,android.R.layout.simple_spinner_item);    //指定布局使用出现的选项列表时,
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);    //应用适配器微调
    spinner.setAdapter(适配器);    按钮buttonSubmit =(按钮)rootView.findViewById(R.id.NextActivity);
    buttonSubmit.setOnClickListener(新View.OnClickListener(){
        公共无效的onClick(视图v){
            意图I =新意图(getActivity()getApplicationContext(),Second.class。);
            i.putExtra(SpinnerValue,spinner.getSelectedItem()的toString());
            。getActivity()startActivity(ⅰ);        }
    });
    返回rootView;
}

步骤4:创建第二活动以接收数据,并将其显示给TextView的

  @覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_second);
    捆绑额外= getIntent()getExtras()。
    串transportItemChosen = extras.getString(SpinnerValue);
    TextView的测试=(的TextView)findViewById(R.id.Result);
    test.setText(transportItemChosen);
}

我已经测试了这个code和工作正常!

I tried various methods fro internet to pass spinner selected item to other class and display in text view

Below is my code. Whenever I open my app,It crashes. Your suggestions are greatly appreciated. Thanks in Advance.

This is my first class BuddyActivity

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


   Button buttonSubmit = (Button) findViewById(R.id.buttonGo);
    buttonSubmit.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
       Spinner transportSpinner = (Spinner) findViewById(R.id.spinnerSection);
          Intent i = new Intent(BuddyActivity.this.getApplicationContext(),search_project.class);
          i.putExtra("transportSpinnerValue", transportSpinner.getSelectedItem().toString());
          BuddyActivity.this.startActivity(i);

      }
    });
}  
 ;

This is my second class:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.search_project);

    Bundle extras = getIntent().getExtras();
    String transportItemChosen = extras.getString("transportSpinnerValue");

}

解决方案

Step 1: Create Layout File for Spinner

<Spinner
    android:id="@+id/email_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

<Button
    android:id="@+id/NextActivity"
    android:text="Load"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

Step 2: Create a res/values/email.xml. This file will hold the list of values for drop down.

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="email_array">
    <item>Home</item>
    <item>Office</item>
    <item>Other</item>
</string-array>
</resources>

Step 3: Create Spinner object in program, map it to layout file. Create respective adapters. I have a fragment in my main activity. You have to customize the below code, in case you only use Activity.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_main, container, false);

    final Spinner spinner = (Spinner) rootView.findViewById(R.id.email_spinner);

    // Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(),
            R.array.email_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);

    Button buttonSubmit = (Button) rootView.findViewById(R.id.NextActivity);
    buttonSubmit.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent i = new Intent(getActivity().getApplicationContext(), Second.class);
            i.putExtra("SpinnerValue", spinner.getSelectedItem().toString());
            getActivity().startActivity(i);

        }
    });
    return rootView;
}

Step 4: Create Second Activity to receive the data and display it to TextView

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
    Bundle extras = getIntent().getExtras();
    String transportItemChosen = extras.getString("SpinnerValue");
    TextView test = (TextView) findViewById(R.id.Result);
    test.setText(transportItemChosen);
}

I have tested this code and works fine!

这篇关于如何通过微调对象给其他活动的Andr​​oid / Java的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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