PDA

View Full Version : نحوه در یافت متن Spinner



sina4everafter
پنج شنبه 29 خرداد 1393, 12:25 عصر
سلام. منون میشم اگر راهنمایی کنید.

من یک Spinner ایجاد کردم و می خوام وقتی که کاربر روی مثلا آیتم اولی کلیک کرد، متن اون آیتم و دریافت کنه. مثلا اگر متر هست، متر و دریافت کنه.
و می خوام بعد از اینکه متن اون آیتم و دریافت کرد با استفاده از equals() مقایسه کنم. من به این شکل می نویسم ولی هیچ کاری و انجام نمیده. ممنون میشم اگر راهنماییم کنید.

این هم کل کد:


package ir.blog.javaroid.approidtest;


import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener ;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;




public class CustomeOnItemSelectedListener extends Activity implements OnItemClickListener{

EditText eText_1st;
TextView txtView;
String str;
Spinner spinnerObjetc;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

initLayout();

}

void initLayout(){
setContentView(R.layout.first_layout);

spinnerObjetc = (Spinner) findViewById(R.id.spinner1);

txtView = (TextView) findViewById(R.id.textView1);
eText_1st = (EditText) findViewById(R.id.eText_1st);


// eText_1st.addTextChangedListener(txtWatcher);

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.length, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.s imple_spinner_dropdown_item);
spinnerObjetc.setAdapter(adapter);


}
@Override
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {

str = parent.getSelectedItem().toString();

if (str.equals("سانتی متر")) {
txtView.setText(str);
}
else {
Toast.makeText(getApplicationContext(), "OK", Toast.LENGTH_LONG).show();
}
}
}

dasssnj
پنج شنبه 29 خرداد 1393, 13:00 عصر
بهتره به جای اسمش از مکانش تشخیص بدی. یعنی پارامتر pos را مقایسه کنی اگه مثلا صفر بود فرض کنی متره(متر مثلا اولین گزینه است) و اگه یک بود سانتی متره (مثلا سانتی متر دومیه) و .... .

sina4everafter
پنج شنبه 29 خرداد 1393, 13:31 عصر
دوست عزیز ممنون از راهنماییتون. ولی باز هم نشد.

barnamenevisjavan
جمعه 30 خرداد 1393, 17:14 عصر
احتمالا از شرط و equal هست به این صورت ویرایشش کنید ببینید جواب میده
str.equals == "سانتی متر"

sina4everafter
جمعه 30 خرداد 1393, 19:35 عصر
سلام دوستان. ممنون از راهنماییتون.
من برای این برنامه از این کد برای دریافت موقعیتش استفاده کردم.
بخش هایی از کد و در زیر می بینید.:

int itemSelected = 0;
itemSelected = spinnerObject.getSelectedItemPosition();


تا اینجا موقعیت آیتم ها رو دریافت می کنه.حالا با استفاده از if شرط گذاشتم که اگر مثلا صفر بود، میلیمتر، 1 بود سانتی متر و ... . به صورت زیر:

if (itemSelected == 0) {
.
.
.
}

مشکل اینجاست که وقتی که فقط مقدار itemSelected برابر صفر است درست حساب می کنه. یعنی اگر مثلا یک و در نظر بگیرم دیگه حساب نمیکنه. شرط های بعدی هم با else if می نویسم. ولی درست نمیشه. ممنون میشم اگر راهنماییم کنید.

sina4everafter
جمعه 30 خرداد 1393, 22:17 عصر
اگر راهنماییم کنید ممنون میشم.