У меня есть ListFragment с данными из JSON. Когда я нажимаю элемент списка, данные отправляются на фрагмент (DetalhesFragment.java). Если пользователь подтвердит данные, он нажмет кнопку в DetalhesFragment, чтобы отправить эту информацию в другой список справа от основной активности (PedidosFragment.java).Невозможно добавить несколько строк в Listview на фрагменте
Это работает! Данные из среднего фрагмента отображаются в первой строке списка на PedidosFragment. Но, если я попытаюсь выбрать другой элемент для отправки туда, строка будет перезаписана новыми данными. Не добавляйте строку под первой строкой.
Вы можете мне помочь, ребята? Здесь, коды ..
DetalhesFragment.java
package com.example.waitersoriginal;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsoluteLayout;
import android.widget.Button;
import android.widget.TextView;
public class DetalhesFragment extends Fragment implements OnClickListener{
TextView nomeEntrada,descrEntrada,valorEntrada,nmArm,dsArm,vlArm;
String txtNome, txtDescr;
View view;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.detalhes_fragment, container, false);
Button mButton = (Button) view.findViewById(R.id.button1);
nomeEntrada= (TextView) view.findViewById(R.id.textView1);
descrEntrada= (TextView)view.findViewById(R.id.textView2);
valorEntrada= (TextView)view.findViewById(R.id.textView3);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
PedidosFragment array = (PedidosFragment)getFragmentManager().findFragmentById(R.id.fragment3);
array.criaArray(txtNome,txtDescr);
break;
}
}
}
);
return view;
}
public void change(String txt, String txt1){
nomeEntrada.setText(txt);
descrEntrada.setText(txt1);
txtNome = txt;
txtDescr = txt1;
//valorEntrada.setText(txt2);
}
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}
PedidosFragment.java
package com.example.waitersoriginal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import android.app.Fragment;
import android.os.Bundle;
import android.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
public class PedidosFragment extends ListFragment{
private ArrayList<HashMap<String, String>> listaPedidos;
private static final String TAG_NM = "NOME";
private static final String TAG_DS = "DESCR";
public PedidosFragment(){}
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.pedidos_fragment, container, false);
}
void criaArray(String nomeProd, String descrProd) {
listaPedidos = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map3 = new HashMap<String, String>();
ListAdapter adapter2 = new SimpleAdapter(getActivity(), listaPedidos,
R.layout.list_item,
new String[] { TAG_NM, TAG_DS},
new int[] { R.id.name, R.id.pid});
setListAdapter(adapter2);
map3.put(TAG_NM, nomeProd);
map3.put(TAG_DS, descrProd);
listaPedidos.add(map3);
((BaseAdapter) adapter2).notifyDataSetChanged();
}
}
Спасибо ..!
Идеального ответа, спасибо @El Jazouli !!!! – xxxxxx
добро пожаловать, рад помочь –