这是主要的XML:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="40sp"
android:layout_marginTop="37dp"
android:layout_below="@+id/textView2"
android:layout_toLeftOf="@+id/button"
android:layout_toStartOf="@+id/button"
android:layout_marginRight="29dp"
android:layout_marginEnd="29dp" />
<TextView
android:id="@+id/countrycode"
android:layout_width="wrap_content"
android:text="+"
android:textSize="30sp"
android:layout_height="40sp"
android:ems="10"
android:layout_alignTop="@+id/spinner"
android:layout_toLeftOf="@+id/editText2"
android:layout_toStartOf="@+id/editText2" />
这是我的Java代码:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textview = (TextView) findViewById(R.id.countrycode);
// Spinner element
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Spinner click listener
spinner.setOnItemSelectedListener(this);
// Spinner Drop down elements
String[] countryname = {"India", "America", "Japan", "Austrailia", "Canada" };
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countryname);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// On selecting a spinner item
String item = parent.getItemAtPosition(position).toString();
// // Showing selected spinner item
Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
这是我的代码。如何在TextView中设置国家/地区代码以在Spinner中选择国家/地区名称?我想使用这段代码,因为它对我来说很容易理解并且它正在工作,但我不能做我想做的事。
我希望如果我在Spinner中选择India,那么我得到印度ISD代码(+91)是TextView。
答案 0 :(得分:0)
为TextView设置TextWatcher:
textview.addTextChangeListener(new TextWatcher());
并实施onTextChange()
方法从用户处获取输入的国家/地区代码,然后输入swich / case以确定我应该选择哪个国家/地区名称。
答案 1 :(得分:0)
使用Hashtable。
class MainActivity {
....
Hashtable countryCodes<String, String>;
TextView textViewCountryCode;
....
onCreate(....){
....
textViewCountryCode = (TextView) findViewById(R.id.countrycode);
countryCodes = new Hashtable<>();
countryCodes.put("India", "+91");
....
}
....
onItemSelected(....){
....
String countryCode = countryCodes.get(item);
textViewCountryCode.setText(countryCode);
....
}
}
答案 2 :(得分:-1)
我理解的是您希望在您提供的代码中得到答案。所以你可以做的是再多一个国家代码数组和On Spinner onSelected方法将所选位置设置为文本视图,但要确保国家名称和国家代码索引相同。或者我建议使用HashMap进行相同。
//在oncreate之前添加以下内容 TextView textview; String [] countrycode = {&#34; + 91&#34;,&#34; + 1&#34;,&#34; + 81&#34;,&#34; + 61&#34;,&#34; + 1&#34; };
并在onItemSelected()方法中执行此操作
textview.setText(COUNTRYCODE [位置]);