我试图将所选项目的值放入TextView中,并且我希望它在每次选定项目更改时都进行更改! 我试图将选定项目的位置放入一个字符串中,然后将TextView的文本设置为等于这个相同的字符串,但没有成功!我真的很新的Java编码,所有的答案真的很受欢迎!如何将TextView的文本设置为微调器上选定项目的内容?
主要活动:
package com.barcala.android.smiteultimatecountdown;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
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 org.w3c.dom.Text;
import static android.icu.lang.UCharacter.GraphemeClusterBreak.T;
import static com.barcala.android.smiteultimatecountdown.R.array.godsNames;
import static com.barcala.android.smiteultimatecountdown.R.id.god_List;
import static com.barcala.android.smiteultimatecountdown.R.id.selected_God;
import static com.barcala.android.smiteultimatecountdown.R.string.selected_god;
public class ultimate extends AppCompatActivity {
Spinner gl;
String god1;
TextView selectedGod;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ultimate);
selectedGod = (TextView) findViewById(R.id.selected_God);
selectedGod.setText(selected_god);
addListenerOnSpinnerItemSelection();
}
public void addListenerOnSpinnerItemSelection() {
gl = (Spinner) findViewById(R.id.god_List);
gl.setOnItemSelectedListener(new MyOnItemSelectedListener());
}
public void get_name(View view) {
Spinner god_List = (Spinner) findViewById(R.id.god_List);
god1 = god_List.getSelectedItem().toString();
TextView selectedGod = (TextView) findViewById(R.id.selected_God);
selectedGod.setText(god1);
}
}
MyOnItemSelectedListener():
package com.barcala.android.smiteultimatecountdown;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.TextView;
import org.w3c.dom.Text;
import static android.R.attr.y;
import static com.barcala.android.smiteultimatecountdown.R.id.god_List;
import static com.barcala.android.smiteultimatecountdown.R.id.selected_God;
import static com.barcala.android.smiteultimatecountdown.R.string.selected_god;
public class MyOnItemSelectedListener extends ultimate implements AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView parent, View view, int pos, long id) {
String result = parent.getItemAtPosition(pos).toString();
selectedGod.setText(result);
Toast.makeText(parent.getContext(), "Selected God : " + result , Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView parent) {
}
}
的logcat的:
03-05 15:12:09.966 19007-19007/com.barcala.android.smiteultimatecountdown E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.barcala.android.smiteultimatecountdown, PID: 19007
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.barcala.android.smiteultimatecountdown.MyOnItemSelectedListener.onItemSelected(MyOnItemSelectedListener.java:26)
at android.widget.AdapterView.fireOnSelected(AdapterView.java:1124)
at android.widget.AdapterView.access$200(AdapterView.java:54)
at android.widget.AdapterView$SelectionNotifier.run(AdapterView.java:1089)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
首先谢谢你的回答,但是当我把g1.set文本的 “getSelectedItem” 不工作。它不认识它。 –
我更新了答案。 –
好的,谢谢,我会尝试! –