单击ListView将自己的值发送到另一个活动 [英] click on ListView send own value into another activity

查看:63
本文介绍了单击ListView将自己的值发送到另一个活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Resources.java

package com.synergywebdesigners.nima;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

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

import java.util.ArrayList;
import java.util.HashMap;
public class Resource extends AppCompatActivity {
    //List view
    private ListView lv;
    EditText inputSearch;
    ArrayAdapter<String> adapter;
    private String JSON_STRING;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_resource);
        lv = (ListView) findViewById(R.id.list_view);
        inputSearch = (EditText) findViewById(R.id.inputSearch);
        getJSON();
        registerForContextMenu(lv);
    }
    String products[] = {"India","Australia","America","SouthAfrica","WestIndia","Dubai"};
    ///showing message
    private void showResources(){
        JSONObject jsonObject = null;
        ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String, String>>();
        try {
            jsonObject = new JSONObject(JSON_STRING);
            JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_RESULT);

            for(int i = 0; i<result.length(); i++){
                JSONObject jo = result.getJSONObject(i);
                String country = jo.getString(Config.TAG_COUNTRY);
                HashMap<String,String> resource = new HashMap<>();
                resource.put(Config.TAG_COUNTRY,country);
                list.add(resource);
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

       final ListAdapter adapter = new SimpleAdapter(
                Resource.this, list, R.layout.list_resources,
                new String[]{Config.TAG_COUNTRY}, new int[]{R.id.resource_name});

      //  adapter = new ArrayAdapter<String>(this, R.layout.list_resources, R.id.resource_name, products);

       /* lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent intent = new Intent(Resource.this, TourismBoard.class);
                Bundle bundle = new Bundle();
                bundle.putParcelableArrayList("mylist",product);
                intent.putExtras(bundle);
                this.startActivity(intent);

            }
        });*/
        inputSearch.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                // When user changed the Text
                Resource.this.adapter.getFilter().filter(cs);
            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                                          int arg3) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
            }
        });
        lv.setAdapter(adapter);
    }
    private void getJSON() {
        class GetJSON extends AsyncTask<Void, Void, String> {

            ProgressDialog loading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                // Toast.makeText(ChatActivity.this,"Your Message Fetching..",Toast.LENGTH_LONG).show();
                loading = ProgressDialog.show(Resource.this, "Showing Message", "Please Wait...", false, false);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                JSON_STRING = s;
                showResources();
            }

            @Override
            protected String doInBackground(Void... params) {
                ReuestHandler rh = new ReuestHandler();
                String s = rh.sendGetRequest(Config.URL_GET_ALL_RESOURCES);
                return s;
            }
        }
        GetJSON gj = new GetJSON();
        gj.execute();

    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
    {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("Choose Your Category");
        menu.add(0, v.getId(), 0, "TOURISM BOARD");//groupId, itemId, order, title
        menu.add(0, v.getId(), 0, "MICE");
    }
    @Override
    public boolean onContextItemSelected(MenuItem item){
        if(item.getTitle()=="TOURISM BOARD"){
            Toast.makeText(getApplicationContext(),"Wlcome To NIMA Tourism Board",Toast.LENGTH_LONG).show();
            Intent tourism = new Intent(getApplicationContext(),TourismBoard.class);
            startActivity(tourism);
        }
        else if(item.getTitle()=="MICE"){
            Toast.makeText(getApplicationContext(),"Mice Details",Toast.LENGTH_LONG).show();
        }else{
            return false;
        }
        return true;
    }
}

TourismBoard.java

package com.synergywebdesigners.nima;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

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

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

public class TourismBoard extends AppCompatActivity {
    private ListView listView;
    private String JSON_STRING;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tourism_board);
        listView = (ListView) findViewById(R.id.list_tourism);
        getJSON();

    }
    ///showing message
    private void showMesage(){
        JSONObject jsonObject = null;
        ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String, String>>();
        try {
            jsonObject = new JSONObject(JSON_STRING);
            JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_TOURISM);

            for(int i = 0; i<result.length(); i++){
                JSONObject jo = result.getJSONObject(i);
                String detail = jo.getString(Config.TAG_DETAIL);
                HashMap<String,String> tourism = new HashMap<>();
                tourism.put(Config.TAG_DETAIL,detail);
                list.add(tourism);
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

        ListAdapter adapter = new SimpleAdapter(
                TourismBoard.this, list, R.layout.layout_tourism, new String[]{Config.TAG_DETAIL}, new int[]{R.id.tourism});

        listView.setAdapter(adapter);
    }
    private void getJSON() {
        class GetJSON extends AsyncTask<Void, Void, String> {

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                 Toast.makeText(TourismBoard.this,"Your List has been Come Please Wait ...",Toast.LENGTH_LONG).show();
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                JSON_STRING = s;
                showMesage();
            }

            @Override
            protected String doInBackground(Void... params) {
                ReuestHandler rh = new ReuestHandler();
                String s = rh.sendGetRequest(Config.URL_GET_ALL_TOURISM+"india");
                return s;
            }
        }
        GetJSON gj = new GetJSON();
        gj.execute();
    }
}

我想将ListView数据发送到TourismActivity.java.

但是我需要将此值转换为String变量. 而且我在资源Activity中也有一个问题,我想使它可搜索ListView但它不起作用.

But I have required this value into String variable . And I have also a problem In resource Activity I want To make Searchable ListView But Its Not Work.

请告诉我如何解决这个问题.

Please Tell me How i am Fix This.

推荐答案

首先创建Json数组和数组列表

First Create Json Array and array List

JSONArray id_array;

JSONArray id_array;

ArrayList product_id_list;

ArrayList product_id_list;

product_id_list = new ArrayList();

product_id_list = new ArrayList();

将ArrayList解析为JsonArray

Parse ArrayList into JsonArray

id_array =新的JSONArray(product_id_list);

id_array = new JSONArray(product_id_list);

现在您可以将列表值作为字符串获取

Now You can get List values as String

这篇关于单击ListView将自己的值发送到另一个活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆