我已经在这里读了一个多小时的相关问题,但还没有找到解决方案来解决我的问题,所以我会问。无法确定微调值
我有一个微调。我想使用该微调器中的选定城市设置经度和纬度变量。我无法知道如何直接调用该信息,或者在单击“使用此城市”按钮时将其设置为变量。这是我迄今为止的代码。
的strings.xml
<string-array name="locations">
<item > Washington D.C. </item>
<item >New York, NY</item>
<item >Juneau, AL</item>
</string-array>
MainActivity.java
package cl.telematica.locationexample;
import cl.telematica.locationexample.interfaces.LocationListenerHandler;
import cl.telematica.locationexample.location.ActiveLocationManagerActivity;
import android.content.Intent;
import android.location.Location;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends ActiveLocationManagerActivity {
public static String citylatitudText;
public static String citylongitudText;
public static TextView latitudText;
public static TextView longitudText;
public static String locationSet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
/*ArrayAdapter<String> adapter;
locationSet = getResources().getStringArray(R.array.locations);
adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
locationSet);
setListAdapter(adapter);*/
Button b = (Button)findViewById(R.id.btnTestNoResults);
Button c = (Button)findViewById(R.id.btnGPSSearch);
Button d = (Button)findViewById(R.id.btnSetCity);
final Spinner spinner = (Spinner)findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> location_adapter = ArrayAdapter.createFromResource(this, R.array.locations, android.R.layout.simple_spinner_item);
location_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(location_adapter);
//final String locationSet = spinner.getSelectedItem().toString();
//final String locationSet = spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
// spinner.setSelection(((ArrayAdapter<String>)spinner.getAdapter()).getPosition(locationSet));
//final String locationSet = (String) spinner.getSelectedItem();
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, NoResults.class));
};
});
c.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//if()
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, NewSearch.class));
};
});
d.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(locationSet == "Washington D.C.")
{ citylatitudText = "38.9047 N";
citylongitudText = "77.0164 W";
}
else if (locationSet == "New York, NY")
{citylatitudText = "40.7127° N";
citylongitudText = "74.0059° W";
}
else
{citylatitudText = "58.3000° N";
citylongitudText = "134.4167° W";
}
// TODO Auto-generated method stub
startActivity(new Intent(MainActivity.this, NewSearch.class));
};
});
latitudText = (TextView) findViewById(R.id.textView4);
longitudText = (TextView) findViewById(R.id.textView5);
listener = new LocationListenerHandler() {
@Override
public void OnLocationReceived(Location loc) {
latitudText.setText("" + loc.getLatitude());
longitudText.setText("" + loc.getLongitude());
}
};
}
@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;
}
}
NewSearch.java
package cl.telematica.locationexample;
import android.os.Bundle;
import android.widget.TextView;
import cl.telematica.locationexample.location.ActiveLocationManagerActivity;
public class NewSearch extends ActiveLocationManagerActivity {
public TextView citylat;
public TextView citylong;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_search);
citylat = (TextView) findViewById(R.id.textView4);
citylong = (TextView) findViewById(R.id.textView5);
citylat.setText(""+ MainActivity.citylatitudText);
//citylong.setText("" + MainActivity.citylongitudText);
citylong.setText("" + MainActivity.locationSet);//testing to see if the city name selected by spinner is being put in variable form
}
}
当我点击 “使用这个城市” 按钮,我得到了NewSearch页面上的citylong变量为“null”,城市为“58.3000°N”(所以它会去“els e“声明,无论我选择哪个城市)。
我知道还有一些关于Spinner调用的帖子,你可以看到我已经尝试了其中的一些,并将他们留在我的代码中注释掉,因为他们没有工作。
我很感激您可以给予的任何帮助。
只是好奇,你在哪里更新与来自字符串xml项目的微调? –
我有我的activity_main.xml中以下 <微调 机器人:ID = “@ + ID/spinner1” 的android:layout_width = “WRAP_CONTENT” 机器人:layout_height = “WRAP_CONTENT” 机器人:layout_below =“@ + ID/select_location” 机器人:layout_centerHorizontal = “真” 机器人:项= “@阵列/位置”/> 而此行中我MainActivity.java 最终微调微调=(微调)findViewById(R.id.spinner1) ; 这是你的意思吗? – Inessaria
对此评论的格式不满意。 – Inessaria