Bir çeviriciden ve bir düğmeden oluşan bir parçam var. Spinner ile dört seçenekten birini seçersiniz ve ardından düğme sizi bir sonraki etkinliğe götürür.Aynı parçaya birden fazla olay dinleyicisi uygulayın - Android
Çeviriciyi uygulamak için, Parçada onItemSelectedListener uygulamasını, ancak onClickListener'ı uygulamak için kullanacağım düğmeyi kullanmam gerekir. Ama ikisini birden yapamam ??? Bunun gerçekten basit bir şey olmasını beklerdim ve bir Görüşte birden fazla farklı Olay dinleyicisine sahip olmanın gerekliliği ortak olmalı, bu yüzden bunu nasıl uygulayacaksınız?
public class FragmentTypeSelect Fragment uygular OnItemSelectedListener {
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState){
// set the view so that it can be referenced
View theView = inflater.inflate(R.layout.fragment_type_select,
container,false);
// set OnClickListener for the button
setUpClickListener(theView,R.id.but_select);
//===============================
// NEW TYPE SPINNER
//===============================
Spinner spinner = (Spinner) theView.findViewById(R.id.new_type_spinner);
spinner.setOnItemSelectedListener((OnItemSelectedListener) this);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(),
R.array.types_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
return theView;
}
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id)
{
TextView headingText = (TextView)getView().findViewById(R.id.new_diet_type_text_heading);
TextView detailText = (TextView)getView().findViewById(R.id.new_diet_type_text_detail);
if (pos == 0)
{
headingText.setText(R.string.heading_type_1);
detailText.setText(R.string.detail_type_1);
}
if (pos == 1)
{
headingText.setText(R.string.heading_type_2);
detailText.setText(R.string.detail_type_2);
}
if (pos == 2)
{
headingText.setText(R.string.heading_type_3);
detailText.setText(R.string.detail_type_3);
}
if (pos == 3)
{
headingText.setText(R.string.heading_type_4);
detailText.setText(R.string.detail_type_4);
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
public void onClick(View view){
Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_LONG).show();
}
private void setUpClickListener(View theView, int childViewID) {
View childView = theView.findViewById(childViewID);
childView.setOnClickListener((OnClickListener) this);
}
}
BaşlangıçtaBen sadece spinner vardı ve bu var uzatır: - İşte
kullanıyorum kodudur iyi çalışıyor. Daha sonra onCreateView setindeki set OnClickListener ile düğme işlevini eklemeye ve ek onClick ve setUpClickListener yöntemlerini eklemeye çalıştım. Tam olarak bunu başka bir yerde yaptım, ancak diğer durumlarda, işlemek için başka etkinliklerim olmadı ve sınıfın onClickListener uygulamasını gerçekleştirmesini sağladım. Java, birden fazla arabirim aracını desteklemiyor (bunu anladığım kadarıyla) ve bu nedenle benim sorum.Yardım edersiniz. Muhtemelen biraz kalınım ama yine de Android'in yanı sıra tüm OO için de oldukça yeni.
İkinizde yapabilirsiniz. Kodunuzu yayınlayın ve sorununuzu daha fazla açıklayın lütfen. –
Leo, Yukarıdaki kodu yayınladım .... Teşekkürler – RobT