2015-03-28 2 views
0

Оригинальный вопрос:Показать товар Список_массивов переназначения ToString() Android

У меня есть база данных, где у меня есть некоторые элементы. Это мой первый раз с андроидом и базами данных. У меня есть класс связи, а другой класс, где есть мой метод «Выбрать все».

В моей ActivityMain я сделал намерение вызвать другое действие, переопределенное toString (только для обучения), в тот момент, когда я нажал кнопку. Эта кнопка должна в моем классе дерева показать все мои объекты моего метода. Выберите All ArrayList.

Здесь код в I вернул мне другую активность (ActivityDB):

защищен недействительным OnCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main);

final DataBaseHandler db = new DataBaseHandler(ActivityDB.this); 
final TreeControl tr = new TreeControl(ActivityDB.this); 

ArrayList<Tree> c = tr.getTreeWhere(null, null, db); 


System.out.println("Retrieving items with loop using index and size list"); 
for (int i = 0; i < c.size(); i++) { 
    System.out.println("Index: " + i + " - Item: " + c.get(i)); 
} 

Моя проблема, когда NID, потому что я нажимаю на кнопку, мой System.out не знаю, как вернуть everything.println делает что: Index: 0 - Item: [email protected]

Это мой IntentSo, как позвонить другая деятельность. Функция onclick() находится в коде проекта напрямую.

Здесь намерение возвращает все предметы из моего списка и не только одно:?

public void newActivity(View v) 
{ 
    Intent intent = new Intent(this, ActivityDB.class); 
    startActivity(intent); 
} 

Вот код дизайн:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Select" 
    android:id="@+id/buttonSelect" 
    android:onClick="newActivity" 
    android:layout_gravity="center_horizontal" /> 

Я не понимаю, что это неправильно, если любой из вас может помочь мне, пожалуйста, мое определение дерева :-)

Спасибо авансом ,

Edited Вопрос:

I перекрытая ToString() в моем классе Tree, чтобы показать все элементы в ArrayList. Я вернул свой NID, потому что я не знаю, как вернуть все. Итак, как вернуть все предметы из моего списка и не только один?

Вот мое определение дерева:

public Tree() { 
    NID = ""; 
    taxonomia = ""; 
    plantado = ""; 
    diametro = ""; 
    altura = ""; 
    valoracion = ""; 
    latitud = ""; 
    longitud = ""; 
    jardin = ""; 
    imagen = ""; 
} 

public String toString() { 
    return NID; 
} 
+0

Где ваша функция onClick()? – Chefes

+0

Вам нужно переопределить 'toString()' в 'Tree'. –

+0

Как вы думаете, что он должен печатать? –

ответ

1

Вы должны вызвать ваши get методы из вашего Tree класса (если есть) или Override ваш метод toString, на Tree классе.

EDIT:

Вы можете добавить (по крайней мере) некоторые получают методы к вашему Tree классу и, как правило, вы будете нуждаться в них. Это сказало, как Alexander Ravikovich сказал в комментариях к вашему вопросу:

«метод печати в Java знает, для извлечения базовых типов, такие как строки, с плавающей точкой, целого ... Java не знает, как он должен печатать ваш объект. «скажите» на java, как его распечатать.Когда вы вызываете печать на каком-либо объекте, внутренне вызывает метод toString данного объекта. . Таким образом, вы должны переопределить его»

Итак, допустим, вы добавляете методы Садись в своем классе, и вы определяете его таким образом (и предположении, что все переменные имеют тип String):

public Tree() { 
    NID = ""; 
    taxonomia = ""; 
    plantado = ""; 
    diametro = ""; 
    altura = ""; 
    valoracion = ""; 
    latitud = ""; 
    longitud = ""; 
    jardin = ""; 
    imagen = ""; 
} 

public String getNid() {return NID;} 
public String getTaxomia() {return taxomia;} 
public String getPlantado() {return plantado;} 
public String getDiametro() {return diametro;} 
public String getAltura() {return altura;} 
public String getValoracion() {return valoracion;} 
public String getLatitud() {return latitud;} 
public String getLongitud() {return longitud;} 
public String getJardin() {return jardin;} 
public String getImagen() {return imagen;} 

@Override 
public String toString() { 
    return "Nid: " + NID + " Taxomia: " + taxomia + " Plantado: " + plantado + " Diametro: " + diametro + " Altura: " + altura + " Valoracion: " + valoracion + " Latitud: " + latitud + " Longitud: " + longitud + " Jardin: " + " Imagen: " + imagen; 
} 
.

Затем на вашем for цикле вы можете вызвать метод get для значения (ов), вы можете захотеть напечатать Допустим, вы хотите, чтобы на NID расходные, taxomia и Valoracion вы можете сделать это следующим образом:.

for(Tree tree : yourListName) { 
    Log.d(TAG, "NID: " + tree.getNid() + " Taxomia: " + tree.getTaxomia() + " Valoracion: " + tree.getValoracion()); 
} 
+0

Спасибо. Я сделал это в своем классе Tree: public String toString() { return NID; }. Но как показать все данные и не только NID? – maevy

+0

Затем, если вы запустите свой код, вы увидите значение, которое 'NID' представляет – dazito

+0

. Да. Это показало, что, и если я хочу показать все значения, что мне следует возвратить в методе toString()? – maevy

Смежные вопросы