Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.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应用程序上通过JSON解析的活动之间传递字符串?_Java_Android_Json_String_Parsing - Fatal编程技术网

Java 如何在android应用程序上通过JSON解析的活动之间传递字符串?

Java 如何在android应用程序上通过JSON解析的活动之间传递字符串?,java,android,json,string,parsing,Java,Android,Json,String,Parsing,我试图在android应用程序中的一个DB中通过JSON解析的两个独立活动之间传递一个字符串。代码在MainActivity中编译,但在SingleContactActivity中有错误。具体来说,错误在字符串测试附加项上。。。。。线路处于单触点状态。 使用本教程 此外,我删除了导入以减少代码混乱,如果需要,我可以重新添加它们 public class MainActivity extends ListActivity { private ProgressDialog pDialog; //

我试图在android应用程序中的一个DB中通过JSON解析的两个独立活动之间传递一个字符串。代码在MainActivity中编译,但在SingleContactActivity中有错误。具体来说,错误在字符串测试附加项上。。。。。线路处于单触点状态。 使用本教程

此外,我删除了导入以减少代码混乱,如果需要,我可以重新添加它们

public class MainActivity extends ListActivity {

private ProgressDialog pDialog;

// URL to get contacts JSON
public static String url = "http://api.androidhive.info/contacts/";

// JSON Node names

private static final String TAG_NAME = "name";
private static final String TAG_EMAIL = "email";
private static final String TAG_PHONE = "phone";


// contacts JSONArray
JSONArray contacts = null;

// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

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

    ListView lv = getListView();

    // Listview on item click listener
    lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // getting values from selected ListItem
            String name = ((TextView) view.findViewById(R.id.name))
                    .getText().toString();
            String cost = ((TextView) view.findViewById(R.id.email))
                    .getText().toString();
            String description = ((TextView) view.findViewById(R.id.mobile))
                    .getText().toString();

            // Launching new Activity on selecting single List Item
            Intent in = new Intent(MainActivity.this, SingleContactActivity.class);

            //getApplicationContext()

            // sending data to new activity
            in.putExtra("TAG_NAME", name);
            in.putExtra(TAG_EMAIL, cost);
            in.putExtra(TAG_PHONE_MOBILE, description);
            startActivity(in);

        }
    });
尝试修复此错误:

String test =  extras.getString("TAG_NAME");
而不是

String test extras.getString("TAG_NAME");
除此之外,一切似乎都很好。

试试这个:
主要活动

     // Launching new Activity on selecting single List Item
        Intent in = new Intent(MainActivity.this, SingleContactActivity.class);

           // sending data to new activity
        in.putExtra("TAG_NAME", "Name is passed here!");
        in.putExtra(TAG_EMAIL, cost);
        in.putExtra(TAG_PHONE_MOBILE, description);
        startActivity(in);
在单身活动中

  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       this.setContentView(R.layout.single_list_item_view);


    Bundle extras = getIntent().getExtras(); 
    if( extras != null ) {
          String test = extras.getString("TAG_NAME");
          Log.d("", "Value passed = " + test);
     }

    }

没有错误,但是当我运行app@user3192423,试试我的编辑,告诉我你得到了什么。你应该在你的日志中看到“Value passed=Name is passed here!”。我照你说的做了,AVD上的新活动中没有显示任何内容。但是我检查了log cat,它只说了“Value passed=null”,你的问题是使用in.putExtra(TAG_NAME,NAME);发送时,使用String test=extras.getString(“TAG_NAME”);收到时。发送和检查时,更改为in.putExtra(“TAG_NAME”,NAME)。双引号是非常重要的,要么在两者上都使用,要么根本不使用。在SingleContactActivity中,我更改了String test=extras.getString(“TAG_NAME”);在main中活动在.putExtra中更改(标记名称,名称);--->>in.putExtra(“标签名称”,名称);运行应用程序,无错误,选定活动-仍不返回活动
  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       this.setContentView(R.layout.single_list_item_view);


    Bundle extras = getIntent().getExtras(); 
    if( extras != null ) {
          String test = extras.getString("TAG_NAME");
          Log.d("", "Value passed = " + test);
     }

    }