我已經在這裏讀了一個多小時的相關問題,但還沒有找到解決方案來解決我的問題,所以我會問。無法確定微調值
我有一個微調。我想使用該微調器中的選定城市設置經度和緯度變量。我無法知道如何直接調用該信息,或者在單擊「使用此城市」按鈕時將其設置爲變量。這是我迄今爲止的代碼。
的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