পুরোপুরি প্রোগ্রামের জন্য এখানে একটি উদাহরণ রয়েছে:
- init একজন স্পিনার
- স্ট্রিং তালিকার মাধ্যমে এটি ডেটা পূরণ করুন।
- স্পিনারটিকে পুনরায় আকার দিন এবং এটি আমার দৃশ্যে যুক্ত করুন।
- স্পিনার ফন্টটি ফর্ম্যাট করুন (ফন্টের আকার, রঙ, প্যাডিং)।
- স্পিনার পরিষ্কার করুন।
- স্পিনারে নতুন মান যুক্ত করুন।
- স্পিনার পুনরায় আঁকুন।
আমি নিম্নলিখিত ক্লাস ওয়ার্স ব্যবহার করছি:
Spinner varSpinner;
List<String> varSpinnerData;
float varScaleX;
float varScaleY;
এ - স্পিনারটি শুরু করুন এবং রেন্ডার করুন (ভ্যাররুটটি আমার মূল ক্রিয়াকলাপের জন্য একটি পয়েন্টার)
public void renderSpinner() {
List<String> myArraySpinner = new ArrayList<String>();
myArraySpinner.add("red");
myArraySpinner.add("green");
myArraySpinner.add("blue");
varSpinnerData = myArraySpinner;
Spinner mySpinner = new Spinner(varRoot);
varSpinner = mySpinner;
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(varRoot, android.R.layout.simple_spinner_item, myArraySpinner);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(spinnerArrayAdapter);
বি - পুনরায় আকার দিন এবং আমার দর্শনে স্পিনার যুক্ত করুন:
FrameLayout.LayoutParams myParamsLayout = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.WRAP_CONTENT);
myParamsLayout.gravity = Gravity.NO_GRAVITY;
myParamsLayout.leftMargin = (int) (100 * varScaleX);
myParamsLayout.topMargin = (int) (350 * varScaleY);
myParamsLayout.width = (int) (300 * varScaleX);;
myParamsLayout.height = (int) (60 * varScaleY);;
varLayoutECommerce_Dialogue.addView(mySpinner, myParamsLayout);
সি - ক্লিক হ্যান্ডলারটি তৈরি করুন এবং হরফ সেট করতে এটি ব্যবহার করুন।
mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int myPosition, long myID) {
Log.i("renderSpinner -> ", "onItemSelected: " + myPosition + "/" + myID);
((TextView) parentView.getChildAt(0)).setTextColor(Color.GREEN);
((TextView) parentView.getChildAt(0)).setTextSize(TypedValue.COMPLEX_UNIT_PX, (int) (varScaleY * 22.0f) );
((TextView) parentView.getChildAt(0)).setPadding(1,1,1,1);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
}
ডি - নতুন ডেটা সহ স্পিনার আপডেট করুন:
private void updateInitSpinners(){
String mySelected = varSpinner.getSelectedItem().toString();
Log.i("TPRenderECommerce_Dialogue -> ", "updateInitSpinners -> mySelected: " + mySelected);
varSpinnerData.clear();
varSpinnerData.add("Hello World");
varSpinnerData.add("Hello World 2");
((BaseAdapter) varSpinner.getAdapter()).notifyDataSetChanged();
varSpinner.invalidate();
varSpinner.setSelection(1);
}
}
আমি আপডেটসিন্টস্পিনারগুলিতে যা সমাধান করতে পারিনি, তা হ'ল ভারস্পিনার.সেটস্লেশন (0); এবং কাস্টম ফন্ট সেটিংস স্বয়ংক্রিয়ভাবে সক্রিয় করা আছে।
হালনাগাদ:
এই "কুরুচিপূর্ণ" সমাধানটি ভ্যারস্পিনার.সেটস্লেশন (0) সমাধান করে; ইস্যু করুন, তবে আমি এতে খুব খুশি নই:
private void updateInitSpinners(){
String mySelected = varSpinner.getSelectedItem().toString();
Log.i("TPRenderECommerce_Dialogue -> ", "updateInitSpinners -> mySelected: " + mySelected);
varSpinnerData.clear();
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(varRoot, android.R.layout.simple_spinner_item, varSpinnerData);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
varSpinner.setAdapter(spinnerArrayAdapter);
varSpinnerData.add("Hello World");
varSpinnerData.add("Hello World 2");
((BaseAdapter) varSpinner.getAdapter()).notifyDataSetChanged();
varSpinner.invalidate();
varSpinner.setSelection(0);
}
}
আশাকরি এটা সাহায্য করবে......