Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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 如何从其他活动中的用户输入中获取要显示在listview上的项目?_Java_Android_Listview_Android Listview - Fatal编程技术网

Java 如何从其他活动中的用户输入中获取要显示在listview上的项目?

Java 如何从其他活动中的用户输入中获取要显示在listview上的项目?,java,android,listview,android-listview,Java,Android,Listview,Android Listview,出于某种原因,当我在newtask.java中输入数据并单击create task时,它不会在listview中为MainActivity创建项目 MainActivity.java package com.example.shaan.todoer; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.support.v7.app.A

出于某种原因,当我在newtask.java中输入数据并单击create task时,它不会在listview中为MainActivity创建项目

MainActivity.java

package com.example.shaan.todoer;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

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


   public class MainActivity extends Activity {

ArrayList<String> list = new ArrayList<String>();

ArrayAdapter<String> adapter;

ListView listViewToDo;



protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    listViewToDo = (ListView) findViewById(R.id.listViewToDo);
    Intent i = new Intent(this, NewTask.class);

    startActivityForResult(i, 1);

    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, list);
    listViewToDo.setAdapter(adapter);



    if(requestCode == 1) {
        if(resultCode == RESULT_OK) {
            String str = data.getStringExtra("type_task_name");
            String str1 = data.getStringExtra("text_date");
            int seek = data.getIntExtra("seekBar", 0);

            list.add(str + " | " + str1 + " | " + seek); //The add method does not work. It says, "Cannot Resolve Method (java.lang.String)
        }
        adapter.notifyDataSetChanged();
        }
    }

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

    listViewToDo = (ListView) findViewById(R.id.listViewToDo);
    //Things still left to do:
    //Prevent Overriding of Items
    //Activate Delete Tasks on Hard Click of Items
    //Fit Name, Date, and Priority on One Line of List
    //Attempt to be able to sort items in Listview

    Button firstButton = (Button) findViewById(R.id.add_task_group);

    firstButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, CalendarViewActivity.class));
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

我是Android的新手。

以startActivityForResult的形式启动第二个活动,并使用setResult()方法将数据从Activity2发送回Activity1。在activity1中,需要重写onActivityResult,以便使用Activity2中的EditText数据更新TextView

例如:

从Acivity1启动活动2的方式为:

Intent i = new Intent(this,  Activity2.class);
startActivityForResult(i, 1);
在Activity2中,使用setResult发回数据:

Intent intent = new Intent();
intent.putExtra("edittextvalue","value_here");
setResult(RESULT_OK, intent);
finish();
在第一个活动中,作为onActivityResult接收数据:

onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1) {
     if(resultCode == RESULT_OK){
      String stredittext=data.getStringExtra("edittextvalue");

//list.add(stredittext); for Adding a data to listview  and  notifydataset changed by listview.notifydatasetchanged();

}
}

你应该使用startActivityforResult()来解决你的问题。你能向我解释一下startActivityforResult()吗,或者告诉我如何在这个应用程序中实现它吗?谢谢@RajanBhavsarIf任何人都能帮助我那太好了。我刚刚用我目前的内容编辑了我的文章。由于某些原因,没有列出任何项edittext的“edittextvalue”和“value_here”是什么?您可以将“edittextvalue”设置为键(只需获取从一个活动到另一个活动的值),并将“value_here”设置为您需要在列表项中设置的值。因此,如果我的edittext的名称是text_date,则“edittextvalue”会是什么我现在不能尝试,因为我不在家,但是当我今天晚些时候尝试时,我会让你知道它是怎么回事。感谢所有的帮助,我真的很感激,因为某些原因,我仍然有这个问题。例如,用户输入类型\任务\名称和文本\日期的活动将不会打开
onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1) {
     if(resultCode == RESULT_OK){
      String stredittext=data.getStringExtra("edittextvalue");

//list.add(stredittext); for Adding a data to listview  and  notifydataset changed by listview.notifydatasetchanged();

}
}