Java 为什么赢了';“我的微调器”是否运行它所连接到的选定对象(即使它单击)?
我正在尝试将微调器添加到我的一个活动中,在该活动中,我可以从一组字段向微调器动态添加项目,以便当我单击该微调器中的项目时,它会重新填充这些字段。将字段中的项目添加到侦听器效果很好,但是当我尝试单击微调器以重新填充字段时。这仍然是一项正在进行的工作,因此有多余的代码 这是正在运行的类的代码Java 为什么赢了';“我的微调器”是否运行它所连接到的选定对象(即使它单击)?,java,android,Java,Android,我正在尝试将微调器添加到我的一个活动中,在该活动中,我可以从一组字段向微调器动态添加项目,以便当我单击该微调器中的项目时,它会重新填充这些字段。将字段中的项目添加到侦听器效果很好,但是当我尝试单击微调器以重新填充字段时。这仍然是一项正在进行的工作,因此有多余的代码 这是正在运行的类的代码 package com.SpurFlys.pocketscout; import java.util.*; import android.app.Activity; import android.conte
package com.SpurFlys.pocketscout;
import java.util.*;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
public class TeamSelection extends Activity implements OnItemSelectedListener{
private Spinner spinner;
private static final List<String> paths = new ArrayList<String>();
private String tournamentName;
Tournament tournament = new Tournament();
EditText mEdit1;
EditText mEdit2;
EditText mEdit3;
EditText mEdit4;
EditText mEdit5;
EditText mEdit6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_team_selection);
Intent intent = getIntent();
tournamentName = intent.getExtras().getString("tournamentName");
tournament.name = tournamentName;
spinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String>adapter = new ArrayAdapter<String>(TeamSelection.this, android.R.layout.simple_spinner_item,paths);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.team_selection, 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);
}
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
String teamNumber = tournament.teamIndex.get(position);
mEdit1.setText(teamNumber);
String[] temp = tournament.teams.get(teamNumber);
String auton = temp[0];
mEdit2.setText(auton);
String chassis = temp[1];
mEdit3.setText(chassis);
String arm = temp[2];
mEdit4.setText(arm);
String intake = temp[3];
mEdit5.setText(intake);
String other = temp[4];
mEdit6.setText(other);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
public void addTeam(View view){
mEdit1 = (EditText)findViewById(R.id.editText1);
mEdit2 = (EditText)findViewById(R.id.editText2);
mEdit3 = (EditText)findViewById(R.id.editText3);
mEdit4 = (EditText)findViewById(R.id.editText4);
mEdit5 = (EditText)findViewById(R.id.editText5);
mEdit6 = (EditText)findViewById(R.id.editText6);
String teamNumber = mEdit1.getText().toString();
String auton = mEdit2.getText().toString();
String chassis = mEdit3.getText().toString();
String arm = mEdit4.getText().toString();
String intake = mEdit5.getText().toString();
String other = mEdit6.getText().toString();
if(teamNumber.trim().equals("")){
Toast.makeText(this, "Blank is not a valid team number", Toast.LENGTH_LONG).show();
}
else{
paths.add(teamNumber);
tournament.createTeam(teamNumber, auton, chassis, arm, intake, other, paths.indexOf(teamNumber));
mEdit1.setText("");
mEdit2.setText("");
mEdit3.setText("");
mEdit4.setText("");
mEdit5.setText("");
mEdit6.setText("");
}
}
}
包com.SpurFlys.pocketscout;
导入java.util.*;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemSelectedListener;
导入android.widget.ArrayAdapter;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.Toast;
公共类TeamSelection扩展活动实现了MSelectedListener{
私人纺纱机;
私有静态最终列表路径=新ArrayList();
私人字符串锦标赛名称;
锦标赛=新锦标赛();
编辑文本mEdit1;
编辑文本媒介2;
编辑文本mEdit3;
编辑文本媒介4;
编辑文本mEdit5;
编辑文本媒介6;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u team\u selection);
Intent=getIntent();
tournamentName=intent.getExtras().getString(“tournamentName”);
tournament.name=tournamentName;
微调器=(微调器)findViewById(R.id.spinner);
ArrayAdapteradapter=新的ArrayAdapter(TeamSelection.this,android.R.layout.simple\u微调器\u项,路径);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
spinner.setOnItemSelectedListener(此);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.team_选择,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@凌驾
已选择公共位置(AdapterView父视图、视图v、整型位置、长id){
String teamNumber=锦标赛.teamIndex.get(位置);
mEdit1.setText(团队编号);
String[]temp=锦标赛.teams.get(teamNumber);
字符串auton=temp[0];
mEdit2.setText(自动);
字符串机箱=温度[1];
mEdit3.setText(机箱);
串臂=温度[2];
mEdit4.setText(arm);
管柱入口=温度[3];
mEdit5.setText(摄入);
字符串other=temp[4];
mEdit6.setText(其他);
}
@凌驾
未选择公共无效(AdapterView父级){
//TODO自动生成的方法存根
}
公共void addTeam(视图){
mEdit1=(EditText)findViewById(R.id.editText1);
mEdit2=(EditText)findViewById(R.id.editText2);
mEdit3=(EditText)findViewById(R.id.editText3);
mEdit4=(EditText)findViewById(R.id.editText4);
mEdit5=(EditText)findViewById(R.id.editText5);
mEdit6=(EditText)findViewById(R.id.editText6);
字符串teamNumber=mEdit1.getText().toString();
字符串auton=mEdit2.getText().toString();
字符串chassis=mEdit3.getText().toString();
String arm=mEdit4.getText().toString();
字符串摄入量=mEdit5.getText().toString();
字符串other=mEdit6.getText().toString();
if(teamNumber.trim()等于(“”){
Toast.makeText(此“空白不是有效的团队编号”,Toast.LENGTH_LONG.show();
}
否则{
路径。添加(团队编号);
createTeam(组号、自动、底盘、手臂、进气、其他、路径)indexOf(组号));
mEdit1.setText(“”);
mEdit2.setText(“”);
mEdit3.setText(“”);
mEdit4.setText(“”);
mEdit5.setText(“”);
mEdit6.SETEXT(“”);
}
}
}
这是活动的代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/teams"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.SpurFlys.pocketscout.TeamSelection" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="11dp"
android:onClick="addTeam"
android:text="@string/add_team" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/spinner"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:hint="@string/team_number" />
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:contentDescription="@string/teams" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:hint="@string/auton"
android:inputType="textMultiLine" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:hint="@string/chassis"
android:inputType="textMultiLine" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText3"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:hint="@string/arm"
android:inputType="textMultiLine" />
<EditText
android:id="@+id/editText5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText4"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:hint="@string/intake"
android:inputType="textMultiLine" />
<EditText
android:id="@+id/editText6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText5"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10"
android:hint="@string/other"
android:inputType="textMultiLine" />
</RelativeLayout>
这是调用的锦标赛对象的代码
package com.SpurFlys.pocketscout;
import java.util.*;
public class Tournament {
public String name;
public String date;
public String address;
public String city;
public String state;
public String country;
public String postalCode;
public Map<String, String[]> teams;
public Map<String, String> teamIndex = new HashMap<String, String>();
String[] tempTeam;
public Tournament() {
teams = new HashMap<String, String[]>();
tempTeam = new String[5];
}
public void createTeam(String number, String auton, String chassis, String arm, String intake, String other, int index){
teamIndex.put(Integer.valueOf(index).toString(), number);
tempTeam[0] = auton;
tempTeam[1] = chassis;
tempTeam[2] = arm;
tempTeam[3] = intake;
tempTeam[4] = other;
teams.put(number, tempTeam);
}
}
package com.SpurFlys.pocketscout;
导入java.util.*;
公开课比赛{
公共字符串名称;
公共字符串日期;
公共字符串地址;
公共字符串城市;
公共字符串状态;
公共字符串国家;
公共字符串后代码;
公共地图小组;
publicmap teamIndex=newhashmap();
字符串[]teteam;
公开赛(){
teams=newhashmap();
TENTEAM=新字符串[5];
}
public void createTeam(字符串编号、字符串自动、字符串机箱、字符串臂、字符串入口、字符串其他、int索引){
teamIndex.put(Integer.valueOf(index.toString(),number);
TESTEAM[0]=auton;
TESTEAM[1]=底盘;
TESTEAM[2]=手臂;
TESTEAM[3]=取水口;
TESTEAM[4]=其他;
团队。put(编号,EAM);
}
}
@覆盖
已选择公共位置(AdapterView父视图、视图v、整型位置、长id){
//您应该打开视图,因为该类正在实现OnItemSelectedListener
开关(v.getId()){
案例(R.id.spinner):
//设置mEdit1.setText(组号)等的逻辑。。
打破
}
}
由于您为活动实现了onItemSelectedListener,因此必须设置窗体对象在被选中时应执行的操作的情况。假设你有另一个纺纱机。该微调器还将使用this
作为设置onItemSelectedListener
的参数。应用程序无法知道在每个实例中应该做什么,除非它知道选择了哪个视图。在选定的视图中打印日志消息,然后
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
//you should be switching on the view, since the class is implementing onItemSelectedListenter
switch(v.getId()){
case (R.id.spinner):
//logic for setting mEdit1.setText(teamNumber), etc..
break;
}
}