【问题标题】:Passing data from listview to edittext of another activity将数据从列表视图传递到另一个活动的编辑文本
【发布时间】:2016-01-11 00:26:37
【问题描述】:
package com.supdeco.oussamaniba.loginapp;

import android.content.ClipData;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
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.List;

public class DisplayListView extends AppCompatActivity {

    String JSON_STRING;
    JSONObject jsonObject;
    JSONArray jsonArray;
    ContactAdapter contactAdapter;
    ListView listView;
    TextView lstv;
    String username,email,password,name,last;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.display_listview_layout);


        listView = (ListView) findViewById(R.id.list);
        lstv = (TextView) findViewById(R.id.lstv);

        contactAdapter = new ContactAdapter(this, R.layout.row_layout);
        listView.setAdapter(contactAdapter);

        JSON_STRING = getIntent().getExtras().getString("json_data");


        try {
            jsonObject = new JSONObject(JSON_STRING);
            jsonArray = jsonObject.getJSONArray("server_response");


            int count = 0;


            while(count<jsonArray.length()){

                JSONObject JO = jsonArray.getJSONObject(count);
                username = JO.getString("username");
                email = JO.getString("email");
                password = JO.getString("password");
                name = JO.getString("name");
                last = JO.getString("lastname");

                Contacts contacts = new Contacts(username,email,password,name,last);
                contactAdapter.add(contacts);

                count++;

                lstv.setText("Available: " + count + " members");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id)
            {
                Intent intent = new Intent(getApplicationContext(), SingleUser.class);
                intent.putExtra("username", String.valueOf(listView.getSelectedItem()));
                startActivity(intent);
            }
        });
    }
}

我尝试将数据从这个 ListView 传递到另一个 EditText 活动,但结果总是null我要传递所有文本 从 ListView 到 EditText 的字符串

【问题讨论】:

标签: java android json android-layout listview


【解决方案1】:

这样做,

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id)
            {
                Intent intent = new Intent(getApplicationContext(), SingleUser.class);
                intent.putExtra("username", YourModels.get(position).getUsername());//here first get position and than pass data you want to pass
                intent.putExtra("fk_Code", "" + YourModels.get(position).getFk_Code());//take data from your model
                startActivity(intent);
            }
        });

查看link 了解更多信息。

【讨论】:

  • 请问您能告诉我我可以用什么代替 YourModels 吗?
  • model 是一个你 setData 和 getData 的类。从该类中,您可以获取数据并将该数据传递给其他活动@O.aniba
  • 通过这个链接学习get和set方法javawithus.com/tutorial/get-and-set-methods
【解决方案2】:

这太简单了,我找到了一个简单的解决方案,我创建了一堆 包含从数据库中获取的每个数据的字符串数组和 存储在其中,所以现在我可以从这些字符串数组中选择 位置,不过还是谢谢

package com.supdeco.oussamaniba.loginapp;


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class DisplayListView extends AppCompatActivity {

    String JSON_STRING;
    JSONObject jsonObject;
    JSONArray jsonArray;
    ContactAdapter contactAdapter;
    ListView listView;
    TextView lstv;
    String username,email,password,name,last;


    List<String> susername = new ArrayList<String>();
    List<String> sname = new ArrayList<String>();
    List<String> slname = new ArrayList<String>();
    List<String> spassword = new ArrayList<String>();
    List<String> semail = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.display_listview_layout);


        listView = (ListView) findViewById(R.id.list);
        lstv = (TextView) findViewById(R.id.lstv);

        contactAdapter = new ContactAdapter(this, R.layout.row_layout);
        listView.setAdapter(contactAdapter);

        JSON_STRING = getIntent().getExtras().getString("json_data");


        try {
            jsonObject = new JSONObject(JSON_STRING);
            jsonArray = jsonObject.getJSONArray("server_response");


            int count = 0;


            while(count<jsonArray.length()){

                JSONObject JO = jsonArray.getJSONObject(count);
                username = JO.getString("username");
                email = JO.getString("email");
                password = JO.getString("password");
                name = JO.getString("name");
                last = JO.getString("lastname");

                Contacts contacts = new Contacts(username,email,password,name,last);
                contactAdapter.add(contacts);

                count++;

                susername.add(username);
                sname.add(name);
                slname.add(last);
                spassword.add(password);
                semail.add(email);

                lstv.setText("Available: " + count + " members");
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id)
            {
                Intent intent = new Intent(getApplicationContext(), SingleUser.class);

                String[] N = new String[sname.size()];
                N = sname.toArray(N);

                String[] L = new String[slname.size()];
                L = slname.toArray(L);

                String[] U = new String[susername.size()];
                U = susername.toArray(U);

                String[] P = new String[spassword.size()];
                P = spassword.toArray(P);

                String[] E = new String[semail.size()];
                E = semail.toArray(E);

                intent.putExtra("name", N[position]);
                intent.putExtra("last", L[position]);
                intent.putExtra("username", U[position]);
                intent.putExtra("password", P[position]);
                intent.putExtra("email", E[position]);
                startActivity(intent);
            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-14
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2015-12-25
    • 2012-01-13
    • 2012-11-12
    相关资源
    最近更新 更多