2017-04-10 93 views
0

我有2个微调控制器。第1个微调控制器显示城市和第2个微调控制器显示基于微调控制器1上所选城市的区域。 例如,如果城市孟买有5个区域。 ..我的第一个微调应该显示孟买(5),同样也适用于其他城市。 这里是我的代码:如何在每个微调框中显示微调项目以及每个微调项目的计数

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.inputmethod.InputMethodManager; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.ArrayAdapter; 
import android.widget.AutoCompleteTextView; 
import android.widget.ImageView; 
import android.widget.Spinner; 
import android.widget.Toast; 


public class SpinnerActivity extends Activity implements OnItemSelectedListener { 



    Spinner spinnerCity; 
    Spinner spinnerArea; 
    AutoCompleteTextView auto_search; 
    String city[]; 
    ImageView img_search_button; 
    String count; 


    @Override 

    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 

     spinnerCity = (Spinner) findViewById(R.id.spinnerCity); 

     // spinnerArea = (Spinner) findViewById(R.id.spinnerArea); 
     ArrayAdapter<CharSequence> countryAdapter = ArrayAdapter.createFromResource(this, R.array.city_array, android.R.layout.simple_spinner_item); 
     countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     spinnerCity.setAdapter(countryAdapter); 

     spinnerCity.setOnItemSelectedListener(this); 



     auto_search = (AutoCompleteTextView) findViewById(R.id.auto_search); 
     img_search_button = (ImageView) findViewById(R.id.img_search_button); 
     // autoSearch Adapter 
     city = getResources().getStringArray(R.array.city_array); 
//test 19 jan 
     int j = 0; 

     for (int i = 0; i < city.length; i++) { 

      String item = city[i]; 
      if (item instanceof CharSequence) { 
       //text.setText((CharSequence)item); 
       j++; 

      } else { 

      } 
     } 
     String outletsTemp[] = new String[j]; 
     j = 0; 
     for (int i = 0; i < city.length; i++) { 

      String item = city[i]; 
      if (item instanceof CharSequence) { 
       //text.setText((CharSequence)item); 
       outletsTemp[j] = item; 
       j++; 
       System.out.println(item); 
      } else { 
       //text.setText(item.toString()); 
       System.out.println(item + "test"); 
       //outletsTemp[i] = "test"; 
      } 
     } 
     city = new String[outletsTemp.length]; 
     city = outletsTemp; 


     ArrayAdapter<CharSequence> outletList = new ArrayAdapter<CharSequence>(this, R.layout.spinner_search, city); 
     outletList.setDropDownViewResource(android.R.layout.select_dialog_singlechoice); 
     //AutoCompleteAdapter outletList = new AutoCompleteAdapter(this,android.R.layout.simple_list_item_1,android.R.id.text1,modelData.outletList); 
     auto_search.setAdapter(outletList); 
     auto_search.setThreshold(1); 

     auto_search.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

       inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

       String selection = (String) parent.getItemAtPosition(position); 
       int loc = -1; 

       for (int i = 0; i < city.length; i++) { 
        if (city[i].equals(selection)) { 
         loc = i; 
         break; 
        } 
       } 
       System.out.println("Position " + loc); 
       /* modelData.shopPosition = pos; 
       spinner_outlets.setSelection(modelData.shopPosition);*/ 
       spinnerCity.setSelection(loc); 
       auto_search.setVisibility(View.GONE); 
       spinnerCity.setVisibility(View.VISIBLE); 

       /*InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       in.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);*/ 


      } 
     }); 
     auto_search.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 


       final int DRAWABLE_LEFT = 0; 
       final int DRAWABLE_TOP = 1; 
       final int DRAWABLE_RIGHT = 2; 
       final int DRAWABLE_BOTTOM = 3; 


       if (event.getRawX() >= (auto_search.getRight() - auto_search.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) { 
        // your action here 
        auto_search.setText(""); 
        return true; 
       } 

       return false; 
      } 
     }); 
     // autoSearch END 


     img_search_button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (spinnerCity.getVisibility() == View.VISIBLE) { 
        auto_search.setVisibility(View.VISIBLE); 
        spinnerCity.setVisibility(View.GONE); 
       } else { 
        auto_search.setVisibility(View.GONE); 
        spinnerCity.setVisibility(View.VISIBLE); 
       } 


      } 
     }); 
     //Intent intent1 = getIntent(); 

     // count= intent1.getStringExtra("COUNT").toString(); 
    } 

    @Override 

    public void onItemSelected(AdapterView<?> parent, View arg1, int pos, 

           long arg3) { 
//int num=parent.getCount(); 
     String value= parent.getItemAtPosition(pos).toString(); 

     if (value.equals("Chennai")) { 


      Intent intent = new Intent(this, Spin2Activity.class); 
      intent.putExtra("VALUE", value); 
      startActivity(intent); 
     } else if (value.equals("Mumbai")) { 


      Intent intent = new Intent(this, Spin2Activity.class); 
      intent.putExtra("VALUE", value); 
      startActivity(intent); 

     } else if (value.equals("Calcutta")) { 

      Intent intent = new Intent(this, Spin2Activity.class); 
      intent.putExtra("VALUE", value); 
      startActivity(intent); 

     } 

    } 



    @Override 

    public void onNothingSelected(AdapterView<?> arg0) { 

    } 

Spinner2Activity

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.Toast; 

public class Spin2Activity extends AppCompatActivity{ 
    Spinner spinnerArea; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_spin2); 
//  Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
//  setSupportActionBar(toolbar); 
     Intent intent = getIntent(); 

     String value= intent.getStringExtra("VALUE"); 
     spinnerArea = (Spinner) findViewById(R.id.spinnerArea); 
     if (value.equals("Chennai")) { 


      ArrayAdapter<CharSequence> adapter = ArrayAdapter 

        .createFromResource(this, R.array.area_chennai, 

          android.R.layout.simple_spinner_dropdown_item); 
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      spinnerArea.setAdapter(adapter); 
      // int count= spinnerArea.getAdapter().getCount(); 
      Toast.makeText(getApplicationContext(), "Total number of Items are:" + spinnerArea.getAdapter().getCount(), Toast.LENGTH_LONG).show(); 


     }else if (value.equals("Mumbai")){ 
      ArrayAdapter<CharSequence> adapter = ArrayAdapter 

        .createFromResource(this, R.array.area_mumbai, 

          android.R.layout.simple_spinner_dropdown_item); 



      spinnerArea.setAdapter(adapter); 

      // int count= spinnerArea.getAdapter().getCount(); 
      Toast.makeText(getApplicationContext(), "Total number of Items are:" + spinnerArea.getAdapter().getCount(), Toast.LENGTH_LONG).show(); 
     }else if(value.equals("Calcutta")){ 
      ArrayAdapter<CharSequence> adapter = ArrayAdapter 

        .createFromResource(this, R.array.area_calcutta, 

          android.R.layout.simple_spinner_dropdown_item); 


      spinnerArea.setAdapter(adapter); 
     } 

} 

} 

我对spinner1

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:layout_weight="2" 
    android:orientation="vertical"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> 
     <Spinner 

      android:id="@+id/spinnerCity" 
      style="?android:attr/spinnerItemStyle" 
      android:layout_width="200dp" 
      android:spinnerMode="dialog" 
      android:layout_height="60dp" 

      android:layout_weight="3" 
      android:layout_centerHorizontal="true" 

      android:layout_marginTop="8dp" 

      /> 
     <!-- <ListView xmlns:android="http://schemas.android.com/apk/res/android" 

      android:id="@+id/spinnerCity" 
      android:layout_width="200dp" 
      android:layout_height="60dp" 
      android:layout_weight="3" 
      android:layout_marginTop="8dp" 
      />--> 

     <AutoCompleteTextView android:id="@+id/auto_search" android:visibility="gone" 
      android:layout_width="10dp" 
      android:layout_height="60dp" android:textSize="20dp" 
      android:layout_weight="3" android:drawableRight="@android:drawable/ic_delete"/> 
     <ImageView 
      android:id="@+id/img_search_button" 
      android:layout_marginTop="8dp" 
      android:layout_width="0dp" 
      android:layout_height="60dp" 
      android:layout_weight="3" 
      android:src="@android:drawable/ic_search_category_default" android:padding="3dp"/> 
    </LinearLayout> 


</LinearLayout> 

我的字符串值::

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="app_name">Spinner</string> 
    <string name="action_settings">Settings</string> 
    <string name="hello_world">Hello world!</string> 
    <string name="title_activity_main">MainActivity</string> 
    <string name="Login">Login</string> 

    <string-array name="city_array"> 
     <item>Delhi</item> 
     <item>Chennai</item> 
     <item>Mumbai</item> 
     <item>Calcutta</item> 
    </string-array> 
    <string-array name="area_chennai"> 
     <item>T Nagar</item> 
     <item>Mount Road</item> 
     <item>Mylapore</item> 
     <!--<item>Vadapalani</item>--> 
    </string-array> 
    <string-array name="area_mumbai"> 
     <item>Andheri</item> 
     <item>Bandra</item> 
     <item>Dadar</item> 
     <item>Matunga</item> 
    </string-array> 
    <string-array name="area_calcutta"> 
     <item>Barasat</item> 
     <item>Dum Dum</item> 
     <item>Kanchrapara</item> 
     <item>Titagarh</item> 
    </string-array> 


    <string name="title_activity_login">App</string> 
    <string name="title_activity_spin2">Spin2Activity</string> 

</resources> 

XML代码最后告诉我如何在每个喷丝的项目的计数一起显示旋转器

输出: spinner1应该在下拉作为

孟买(5)加尔各答(4)奈(4)

显示然后微调器2显示每个微调器项目中存在的项目

回答

1

您可以使用包含文本和计数的布局编写自定义数组适配器,并从t他在自定义适配器中获取了DropDownView方法。

+0

如果项目的位置!= 0,则隐藏计数文本以防止计数显示在行项目中。 –

+0

感谢您的回复...可以用示例代码来解释@Sudheesh Mohan –

+1

@ s.vijay请参考http://androidexample.com/Custom_Spinner_With_Image_And_Text_-_Android_Example/index.php?view=article_discription&aid=84 – fightingCoder

相关问题