2014-07-13 12 views
0

如何在Eclipse中設置文本字段以與Spinner中選擇的項目一起使用?示例 - 如果用戶選擇第二個項目(超出下拉菜單中的說3),我希望他們能夠使用文本字段來爲微調器的戰鬥設置一個值,以選擇該項目。把它看作是一種翻譯工具。如果這個人從語言菜單中選擇英語,然後鍵入英文單詞(在文本字段中),我希望它能夠將它轉換爲他們在第二個微調器(西班牙語)中選擇的內容,一旦他們點擊「轉換「按鈕。Eclipse中的文本字段和Spinners

我道歉,如果這個問題似乎更需要一個Java/Eclipse的教訓,然後代碼的幫助,但我明白任何幫助都:)

MainActivity

package com.overworldinnovations.datatool; 

import java.util.ArrayList; 
import java.util.List; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Spinner; 
import android.os.Build; 
import android.widget.Toast; 

public class MainActivity extends ActionBarActivity { 


private Spinner spinner1, spinner2; 
private Button buttonConvert; 


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


    addItemsOnSpinner2(); 
    addListenerOnButton(); 
    addListenerOnSpinnerItemSelection(); 

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.container, new PlaceholderFragment()).commit(); 
    } 
} 

public void addItemsOnSpinner2() { 

    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    //List<String> list = new ArrayList<String>(); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    spinner2.setOnItemSelectedListener(new CustomOnItemSelectedListener()); 

    /*list.add("list 1"); 
    list.add("list 2"); 
    list.add("list 3"); 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_spinner_item, list); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner2.setAdapter(dataAdapter);*/ 
    } 

public void addListenerOnSpinnerItemSelection() { 
    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener()); 
    } 

public void addListenerOnButton() { 

    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    buttonConvert = (Button) findViewById(R.id.buttonConvert); 

    buttonConvert.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

     Toast.makeText(MainActivity.this, 
     "OnClickListener : " + 
       "\nSpinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) + 
       "\nSpinner 2 : "+ String.valueOf(spinner2.getSelectedItem()), 
      Toast.LENGTH_SHORT).show(); 
     } 

    }); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

/** 
* A placeholder fragment containing a simple view. 
*/ 
public static class PlaceholderFragment extends Fragment { 

    public PlaceholderFragment() { 
    } 

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

} 

activity_main

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/container" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.overworldinnovations.datatool.MainActivity" 
tools:ignore="MergeRootFrame" > 

<Button 
    android:id="@+id/buttonConvert" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_marginBottom="50dp" 
    android:text="Convert" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:text="Please Select A Data Type To Be Converted" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<Spinner 
    android:id="@+id/spinner2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/spinner1" 
    android:layout_marginTop="45dp" 
    android:entries="@array/type_arrays" 
    android:prompt="@string/data_prompt" /> 

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView1" 
    android:layout_marginTop="60dp" 
    android:entries="@array/type_arrays" 
    android:prompt="@string/data_prompt" /> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/editText1" 
    android:layout_below="@+id/spinner2" 
    android:layout_marginTop="22dp" 
    android:ems="10" 
    android:inputType="numberSigned" > 

    <requestFocus /> 
</EditText> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/spinner1" 
    android:layout_centerHorizontal="true" 
    android:ems="10" 
    android:inputType="numberSigned" /> 

</RelativeLayout> 

字符串

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<string name="app_name">Data Tool</string> 
<string name="hello_world">Hello world!</string> 
<string name="action_settings">Settings</string> 
<string name="convert">Convert</string> 
<string name="data_tool_is_an_application_that_converts_binary_to_decimal_d">Data Tool is an application that converts Binary to Decimal :D</string> 
<string name ="data_prompt">Choose a data type</string> 

<string-array name = "type_arrays"> 
    <item >Decimal</item> 
    <item >Binary</item> 
    <item >Hexidecimal</item> 
</string-array> 
</resources> 

CustomOnItemSelectedListener

package com.overworldinnovations.datatool; 

import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.Toast; 

public class CustomOnItemSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) { 
    Toast.makeText(parent.getContext(), 
     "OnItemSelectedListener : " + parent.getItemAtPosition(pos).toString(), 
     Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
    } 

} 
+0

顯示你寫的代碼到目前爲止,以實現這一點。我們可以幫助您解決那裏的問題。 – csmckelvey

+0

@Takendarkk那裏有我到目前爲止的代碼!感謝您的回覆和關注:) – KangarooRIOT

+0

您的代碼和acitivity.xml不匹配,請分享已完成並添加更多詳細信息。 –

回答

0

好了,我不能告訴你關於你的轉換啄,但我會告訴你如何傾聽辦根據選定的微調項,如何處理文本框的東西。其餘的你必須編碼:-)

這裏是一個類,它實現了一個微調器,並根據微調器中所選的選項做一些事情。它可以變得非常不同,但這應該解釋簡單的事情。

public class MyClass extends Fragment implements AdapterView.OnItemSelectedListener { 

// Your Spinner 
public Spinner spinner; 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ 
    final View view = inflater.inflate(R.layout.tab2, container, false); 

    // Customize from here 
    final TextView textview = (TextView) view.findViewById(R.id.textView); 
    final Button button = (Button) view.findViewById(R.id.btn_calculate); 

    setSpinnerContent(view); 

    // attach an OnClickListener 
    button.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 

      Integer selectedOption = spinner.getSelectedItemPosition(); 


       if (selectedOption==0) { 

        myString = "Option 1 selected"; 
       } 
       if (selectedOption==1) { 

        myString = "Option 2 selected"; 
       } 
       if (selectedOption==2) { 

        myString = "Option 3 selected"; 
       } 

      textview.setText(myString); 
      } 


     } 
    ); 
    return view; 
} 
private void setSpinnerContent(View view) 
{ 
    spinner = (Spinner) view.findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

} 


public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { // ItemsSelected 

    //An alternate way to listen to the selected items 
} 

public void onNothingSelected(AdapterView<?> parent) { 
    // Another interface callback 
} 

}

的微調,從這樣的一個字符串XML資源獲取內容:

<string-array name="planets_array"> 
    <item>Euro</item> 
    <item>US-Dollar</item> 
    <item>Yen</item> 
</string-array> 
0
spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      String val = spinner.getSelectedItem().toString();//Getting Value of Selected Item 
      txtPerc.setText(val);//TextView 
     } 

     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 

     } 
    }); 

做這樣的事情。而請清除你的問題。 希望它的幫助..