2012-03-19 6 views
3

Я новичок в Android Development, и я хочу реализовать Spinner. Моя проблема в том, что у меня есть массив, который имеет 9 значений для ключевой категории. Мой массив выглядит так:Как использовать spinner и заполнить его из массива в android

MyArray 
[{Category=Things To Do}, 
{Category=Transportation}, 
{Category=Food and Drink}, 
{Category=Accommodation}, 
{Category=Shopping}, 
{Category=Money and Costs}, 
{Category=Business}, 
{Category=Turkey Tour}, 
{Category=Events}] 

Я хочу получить значение ключа категории. Мне нужен MyArray для прядильщика в нижнем углу:

MyArray 
    { 
    Things To Do 
    Transportation 
    Food and Drink 
    Accommodation 
    Shopping 
    ......  
    } 

Он похож на код iPhone.

// iPhone code 
for(int i=0; i<[arrayCategory count]; i++) 
    { 
    NSString *strSubTitle=[[arrayCategory objectAtIndex:i]objectForKey:@"category"]; 
    } 

Любая идея?

Пожалуйста, помогите мне.

спасибо

+0

Спасибо за ответ. я должен разбирать wizardistanbul.net/wizardistanbul/mobilewebservices/... и должен показывать имя категории и название категории в spinner. – Deepak

+0

MyArray [{Категория = Things To Do}, {Категория = Транспорт}, {Категория = Продукты питания и напитки}, {Категория = Размещение}, {Категория = Магазины}, {Категория = Деньги и цены} , {Категория = Бизнес}, {Category = Turkey Tour}, {Категория = События}] – Deepak

ответ

10

сначала создать XML в строку для строкового массива

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="planet_prompt">Choose a planet</string> 
    <string-array name="planets_array"> 
    <item>Mercury</item> 
    <item>Venus</item> 
    <item>Earth</item> 
    <item>Mars</item> 
    <item>Jupiter</item> 
    <item>Saturn</item> 
    <item>Uranus</item> 
    <item>Neptune</item> 
    </string-array> 
</resources> 

затем использовать выше XML для массива строк в коде, как показано ниже

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

    Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
     this, R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    } 
+0

Спасибо за ответ. Мне нужно проанализировать http://wizardistanbul.net/wizardistanbul/mobilewebservices/iphonerequest_instanbul.php?request=Category и показать имя категории и название категории в spinner. – Deepak

+0

MyArray после разбора MyArray [{Category = Things To Do}, {Категория = Транспорт}, {Категория = Еда и напитки}, {Категория = Размещение}, {Категория = Покупки}, {Категория = Деньги и расходы}, { Category = Business}, {Category = Turkey Tour}, {Category = Events}] – Deepak

4

попробуйте этот способ, он будет работать нормально.

public class ArrayAdapterDemo2 extends Activity implements 
     AdapterView.OnItemSelectedListener { 
    TextView selection; 
    String[] category= { "football","cricket" ,"baseball"}; 

    @Override 
    public void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 
     selection = (TextView) findViewById(R.id.selection); 

     Spinner spin = (Spinner) findViewById(R.id.spinner); 
     spin.setOnItemSelectedListener(this); 

     ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item, category); 

     aa.setDropDownViewResource(
      android.R.layout.simple_spinner_dropdown_item); 
     spin.setAdapter(aa); 
    } 

    public void onItemSelected(AdapterView<?> parent, View v, int position, 
      long id) { 
     selection.setText(items[position]); 
    } 

    public void onNothingSelected(AdapterView<?> parent) { 
     selection.setText(""); 
    } 
} 
+0

Спасибо за ответ. я должен разбирать wizardistanbul.net/wizardistanbul/mobilewebservices/... и должен показывать имя категории и название категории в spinner. – Deepak

+0

проанализировать данные и сохранить в адаптере, и этот адаптер использовать для заполнения данных в spinner ok. – Hasmukh

0

Если я правильно понимаю ваш вопрос это будет sol 1. Создайте Spinner Spinner spinner;

2.Create данных String[] category={"Cricket","football".....};

3.spinner.setAdapter (новый Arrayadapter (это, android.R.layout.simple_spinner_item, категория));

4.On выбора конкретного значения на блесны, чтобы получить значение

spinner.setOnItemSelected(new onItemselected(public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 
// to get selected Value 
Toast.makeText(getApplicationContext(),"selected:"+category[pos],5000).show(); 
}); 
+0

Вы знаете, как заполнять значения в Data String [] category = {"Cricket", "football" .....}. .. вы говорите по статической точке. Сделайте эту строку динамически из массива синтаксического анализа, а разработчик имеет массив синтаксического анализа, который называется MyArray ... –

+0

Если это динамический массив, используйте 1.ArrayList 2.make Length of ArrayList dynamic 3.Use add (index, value) на ArrayList, чтобы установить контент и, наконец, использовать этот arraylist вместо массива категорий в setAdapter() от счетчика – Manju

+0

MyArray после разбора является MyArray [{Категория = Things To Do}, {Категория = Транспорт}, {Категория = Продукты питания и напитки}, {Категория = Размещение}, {Категория = Магазины}, {Категория = деньги и расходы}, {Категория = Бизнес}, {Category = Turkey Tour}, {Категория = События}] – Deepak

0
import android.widget.SimpleCursorAdapter; 
import android.widget.Spinner; 

public class AndroidSQLite extends Activity implements OnItemSelectedListener { 
Spinner spinnergame; 
String[] games = { "football","cricket" ,"baseball"}; 

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
setContentView(R.layout.creategame); 

spinnergame = (Spinner) findViewById(R.id.game); 
spinnergame.setOnItemSelectedListener(this); 
ArrayAdapter<String> aa = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, games); 

    aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnercity.setAdapter(aa); 
public String getSpinnerSelection() { 
    return this.selectedspinnervalue; 
} 

public void setSpinnerSelection(String selection) { 
    this.selectedspinnervalue = selection; 
} 
public void onItemSelected(AdapterView<?> parent, View view, int position, 
     long id) { 



} 


public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
    selection.setText(""); 

    } 
} 
+0

Привет, я думаю, что разработчик проблем стоит, чтобы удалить тег категории с символом =. Если у вас есть идея, скажите ему, как динамически найти только элементы массива не в том формате, который задал аферист. –