Счетчик Android, показывающий ссылку на объект вместо строкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Счетчик Android, показывающий ссылку на объект вместо строки

Сообщение Anonymous »

ОК, так что у меня есть проблема с моим прядильщиком. Он заполняется данными, полученными из веб -сервиса. Проблема, с которой у меня есть, заключается в том, что когда спиннер не нажимается вместо того, чтобы показывать строку для первого элемента в спиннере, он показывает ссылку на объект для него. < /P>

У меня есть Посмотрел связанный вопрос, но все еще не мог видеть, что мне не хватает, так просто, как пропущенная ссылка на то, что? >

Код: Выделить всё

private void buildDrinkDropDown() {

List apiParams = new ArrayList(1);
apiParams.add(new BasicNameValuePair("call", "drinkList"));

bgt = new BackGroundTask(MAP_API_URL, "GET", apiParams);

try {

JSONArray drinks = bgt.execute().get();

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

JSONObject d = drinks.getJSONObject(i);

String id = d.getString(TAG_ID_DRINK);
String createdAt = d.getString(TAG_CREATED_AT);
String updatedAt = d.getString(TAG_UPDATED_AT);
String price = d.getString(TAG_PRICE);
String name = d.getString(TAG_NAME);

drinkList.add(new Drink( createdAt ,id, name, price,updatedAt ));
}

drinkField = (Spinner) findViewById(R.id.countryField);
DrinkAdapter dAdapter = new DrinkAdapter(this, android.R.layout.simple_spinner_item, drinkList);
drinkField.setAdapter(dAdapter);

drinkField.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override
public void onItemSelected(AdapterView parent, View view, int position, long id) {
//Drink selectedDrink = drinkList.get(position);
GlobalDrinkSelected = drinkList.get(position).getId().toString();

}

@Override
public void onNothingSelected(AdapterView parent) {}

});

} catch (JSONException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
Вот код класса адаптера

Код: Выделить всё

package com.android.main;

import java.util.ArrayList;

import android.app.Activity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class DrinkAdapter extends ArrayAdapter
{
private Activity context;
ArrayList data = null;

public DrinkAdapter(Activity context, int resource, ArrayList data)
{
super(context, resource, data);
this.context = context;
this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent)
{   // Ordinary view in Spinner, we use android.R.layout.simple_spinner_item
return super.getView(position, convertView, parent);
}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{   // This view starts when we click the spinner.
View row = convertView;
if(row == null)
{
LayoutInflater inflater = context.getLayoutInflater();
row = inflater.inflate(R.layout.dropdown_value_id, parent, false);
}

Drink item = data.get(position);
String test = item.getName();
Log.d("test ", test);

if(item != null)
{

TextView drinkName = (TextView) row.findViewById(R.id.item_value);

if(drinkName != null){
drinkName.setText(item.getName());
Log.d("find me ", drinkName.toString());
}

}

return row;
}
}
Вот XML-файл для макета dropdown_value_id, который используется в адаптере
Если понадобится дополнительная информация, просто крикните.

Любая помощь будет очень признательна
Изменить: снимок экрана

Изображение


Подробнее здесь: https://stackoverflow.com/questions/157 ... -of-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»