Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android环境中实现onButtonClick的最佳位置_Java_Android_Json_Listview_Fragment - Fatal编程技术网

Java 在Android环境中实现onButtonClick的最佳位置

Java 在Android环境中实现onButtonClick的最佳位置,java,android,json,listview,fragment,Java,Android,Json,Listview,Fragment,我正在处理一个包含三个片段的活动:ListFragment、DetailsFragment和OrderFragment。这个想法是: -从MySQL读取JSON文件,并从ListFragment填充列表。工作 -onClickItem将向DetailsFragment发送以前单击的项目的详细信息。工作 -最后,将有一个按钮,用于将所选项目名称和描述中的字符串值发送到OrderFragment中的Listview。不知道它是否有效,这是我的问题 我在ListFragment中实现了添加到订单的智能

我正在处理一个包含三个片段的活动:ListFragment、DetailsFragment和OrderFragment。这个想法是:

-从MySQL读取JSON文件,并从ListFragment填充列表。工作

-onClickItem将向DetailsFragment发送以前单击的项目的详细信息。工作

-最后,将有一个按钮,用于将所选项目名称和描述中的字符串值发送到OrderFragment中的Listview。不知道它是否有效,这是我的问题

我在ListFragment中实现了添加到订单的智能,但我不知道实现它的最佳位置。我甚至无法验证我的逻辑是否有效

请考虑我的代码只是为了更好地了解我的项目:

ListaFragment.java

PedidosFragment.java或OrderFragment:

我不知道我的逻辑是否可以接受,所以很抱歉


各位,先谢谢。

嗨!有什么好主意吗?大家好,有人能帮我吗?
package com.example.waitersoriginal;

import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListFragment;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ListaFragment extends ListFragment {

private ProgressDialog pDialog;

 private static final String URL_SELECT ="http://192.168.0.3/waiters/select_bebidas.php";   

//JSONTAGS
private static final String TAG_NOME = "NOME";
private static final String TAG_BEBIDAS = "bebidas";
private static final String TAG_DESCR = "DESCR";

public String txt1;
public String txt2;

private JSONArray mProdutos = null;
private ArrayList<HashMap<String, String>> mProdutosList;
private ArrayList<HashMap<String, String>> mPedidosList;


public ListaFragment(){}

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) 
{ 
  return inflater.inflate(R.layout.lista_fragment, container, false); 
}

@Override
public void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    //loading the comments via AsyncTask
    new LoadEvents().execute();

  }
  public void updateJSONdata() {

    mProdutosList = new ArrayList<HashMap<String, String>>();


    JSONParser jParser = new JSONParser();

    JSONObject json = jParser.getJSONFromUrl(URL_SELECT);

    try {


        mProdutos = json.getJSONArray(TAG_BEBIDAS);


        for (int i = 0; i < mProdutos.length(); i++) {
            JSONObject c = mProdutos.getJSONObject(i);

            String nome = c.getString(TAG_NOME);
            String descr = c.getString(TAG_DESCR);

            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();

            map.put(TAG_NOME, nome);
            map.put(TAG_DESCR, descr);

            mProdutosList.add(map);

        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
}
private void updateList() {

    mPedidosList = new ArrayList<HashMap<String, String>>();
    HashMap<String, String> map2 = new HashMap<String, String>();

ListAdapter adapter = new SimpleAdapter(getActivity(), mProdutosList,
        R.layout.list_item, 
        new String[] { TAG_NOME, TAG_DESCR}, 
        new int[] { R.id.name, R.id.pid});

            setListAdapter(adapter);

            ListView lv = getListView();    
            lv.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                    DetalhesFragment txt = (DetalhesFragment)getFragmentManager().findFragmentById(R.id.fragment2);

                    txt.change(mProdutosList.get(position).get(TAG_NOME).toString(),mProdutosList.get(position).get(TAG_DESCR).toString());
                    //txt.change(Entradas[position],Descricao[position],"Preço: "+Valor[position]);
                    //txt.change(AndroidOS[position]);
                    getListView().setSelector(android.R.color.transparent);

                    txt1 = mProdutosList.get(position).get(TAG_NOME).toString();
                    txt2 = mProdutosList.get(position).get(TAG_DESCR).toString();

                    }            
                });
}

public class LoadEvents extends AsyncTask<Void, Void, Boolean> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(getActivity());
        pDialog.setMessage("Carregando cardápio, aguarde por favor!");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }
    @Override
    protected Boolean doInBackground(Void... arg0) {

        updateJSONdata();
        return null;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        super.onPostExecute(result);
        pDialog.dismiss();

        updateList();
        }
      }

public void btnAddOnClick(String nmProd, String dsProd){

    PedidosFragment array = (PedidosFragment)getFragmentManager().findFragmentById(R.id.fragment3); 
    array.criaArray(txt1,txt2);

}
package com.example.waitersoriginal;

import java.util.ArrayList;
import java.util.Arrays;

import android.app.Fragment;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class PedidosFragment extends Fragment{

    String[] pedidos;
    String[] descr;
    private ListView lv;
    private View myFragmentView;

    public PedidosFragment(){}

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) 
    { 

        myFragmentView = inflater.inflate(R.layout.pedidos_fragment, container, false);
        return myFragmentView;
        //return inflater.inflate(R.layout.pedidos_fragment, container, false); 
    }

    public void criaArray(String nomeProd, String descrProd)
    {
        for (int i = 0; i < pedidos.length; i++) {
            String concat = nomeProd+descrProd;
            concat = pedidos[i];

            lv = (ListView) myFragmentView.findViewById(R.id.listview2);
            ArrayAdapter arrayAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),android.R.layout.simple_list_item_1, pedidos);

        }

    }

}