用一个按钮链接两个微调器

时间:2016-12-27 07:11:14

标签: button spinner

我希望用户这样做:当他们从第一个微调器中选择一个项目而在另一个微调器上选择项目并单击按钮时,他们会在TextView中得到结果。我怎样才能做到这一点?

我已经创建了两个微调器,TextView和一个按钮。例如:如果用户从第一个微调器中选择他们的名字,第二个微调器就是他们的id,当他们点击按钮时,文本视图将显示他们的电话号码。

更新:

以下是MainActivity的代码

package second.program.p1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

Spinner v1;
Spinner v2;
ArrayAdapter<CharSequence> adapter;
TextView T1;
Button b;



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

    v1 = (Spinner) findViewById(R.id.v1);
    adapter = ArrayAdapter.createFromResource(this,R.array.city_names,android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    v1.setAdapter(adapter);
    v1.getSelectedItemPosition();



    v2 = (Spinner) findViewById(R.id.v2);
    adapter = ArrayAdapter.createFromResource(this,R.array.city_names,android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    v2.setAdapter(adapter);



    T1 = (TextView) findViewById((R.id.T1));

    b = (Button) findViewById(R.id.b);





}
    };

的strings.xml

<resources>
<string name="app_name">P1</string>
<string-array name="city_names">
    <item>" "</item>
    <item>"Med"</item>
    <item>"Ryu"</item>
    <item>"Jedd"</item>
    <item>"Hai"</item>
</string-array>
</resources>

所以,我希望在用户从第一个微调器(v1)中选择“Med”并从第二个微调器(v2)中选择“Hai”后,按下按钮,之后在TextView中将显示km (两个城市之间的距离,但我还没有添加)

我做了两个微调器, 现在我应该对TextViewButton

做些什么

1 个答案:

答案 0 :(得分:0)

正如您已更新问题所以我现在可以正确回答,

Android提供了两种方法,我们需要覆盖这些方法来处理微调器的项目选择。

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item
    String cityName = parent.getItemAtPosition(position).toString();

    // Showing selected spinner item
    Toast.makeText(MainActivity, "Selected city: " + cityName, Toast.LENGTH_LONG).show();

}

public void onNothingSelected(AdapterView<?> view) {
    // This method helps when we have to handle when user hasn't selected anything
       from spinner on which further events are dependent.

}

现在点击按钮 b 按钮点击你的onCreate:

b.setOnClickListener(new OnClickListener() { 

    @Override
    public void onClick(View view){

        String firstCityName = v1.getSelectedItem().toString();
        String secondCityName = v2.getSelectedItem().toString();

        //now you have both items/cities you selected from spinners
        // so its time to do some checks and show user the distance

        if(firstCityName.equals("Meh") && secondCityName.equals("Med"){
            T1.setText("the value which you have stored somewhere");

        } else if(firstCityName.equals("Med") && secondCityName.equals("Ryu"){
              T1.setText("30KM / hardcode it or get the value you stored somewhere");
       } //.... if-else-if for remaining cases
    }

}

一些建议:

1 - 请使用正确的命名约定。

Spinner spinnerStartingCity = new .....
Button btnSubmit = new ....

2 - 这些话题并不是很难通过互联网找到,首先搜索得当,因为几乎所有的编码员都会这么做? GOOGLE - &gt;复制粘贴 !! :d

3 - 在谷歌搜索之前,如果你想成为一名开发人员而不仅仅是编码员,首先要通过适当的教程,android开发网站和在线教程进行彻底的理解,因为学习持续时间比复制粘贴更长: )

快乐发展