2016-12-27 81 views
0

我希望用戶這樣做:當他們從第一個Spinner和另一個Spinner中的項目中選擇一個項目並單擊該按鈕時,他們將得到結果TextView。我怎樣才能做到這一點?使用按鈕鏈接兩個Spinner

我創建了兩個微調器,TextView和一個按鈕。例如:如果用戶從第一個微調器中選擇他們的名字,第二個微調他們的ID,當他們點擊按鈕時,文本視圖將顯示他們的電話號碼。

UPDATE:

這裏是在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)和第二個微調(v2)中的「海」,他按下按鈕,然後在TextView將會出現km(兩個cites之間的距離,但我不添加它)

我做了兩個紡紗器, 現在我應該怎麼處理TextViewButton

+0

這個問題似乎是Android系統,爲什麼你需要這兩個紗廠鏈接?你可以從這兩個spinners的個人,並按鈕點擊你可以查詢你的數據庫或任何存儲庫用於存儲數據,以獲得具有選定的名稱和編號的人數 –

+0

我希望結果顯示爲用戶選擇,becuse這個我會添加兩個微調。所以用戶可以從每個微調器中選擇一個,並從按鈕 – Ahmed

+0

得到結果是的,我瞭解您的問題,部分(如果不完全),您可以從微調器中選擇,然後查詢客戶的號碼,這些微調器不需要相互關聯,這很簡單,就像你在任何一個選擇聯賽和日期的足球網站上看到的那樣,然後你點擊它顯示當天所有球隊的比賽,這需要這兩個球員的輸入和查詢db輸出。我希望現在很清楚,如果你問如何開始做這件事,那麼這裏有大量的教程 –

回答

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 
    } 

} 

一些建議:

請使用正確的命名約定。

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

2-主題像這些都不是很難找到通過互聯網,第一個搜索正確,因爲什麼幾乎所有的程序員這麼做? GOOGLE - >複製/粘貼! :d

3-之前谷歌搜索,如果你想成爲一名開發者而不僅僅是編碼器,先通過適當的教程,Android開發人員網站,以及透徹的瞭解在線教程,因爲學習持續時間超過複製粘貼:)

快樂發展

+0

非常感謝!現在它很清楚,我是一個初學者,所以也許這太容易了:)我會採納你的建議,但相信我,我在寫這裏之前做了大量的谷歌搜索答案。 祝你一切順利 你救了我! – Ahmed

+0

高興地幫助:)你可以接受答案:)祝你好運,以及:)沒問題,你是初學者,這就是爲什麼我寫建議/秒:D –