将字符串转换为Arraylist<;字符串>;在Android中

将字符串转换为Arraylist<;字符串>;在Android中,android,listview,arraylist,Android,Listview,Arraylist,我正在尝试在Listview中动态输入数据。我使用第二个类文件作为对话框来获取数据,并通过Intent传递数据。传递的数据是字符串形式,而要在Listview中显示的arrayadapter中的数据是Arraylist形式。 请帮我解决这个问题 提前谢谢 我附上下面的代码 主课 package com.example.listview; import java.util.ArrayList; import android.R.string; import android.os.Bundle;

我正在尝试在Listview中动态输入数据。我使用第二个类文件作为对话框来获取数据,并通过Intent传递数据。传递的数据是字符串形式,而要在Listview中显示的arrayadapter中的数据是Arraylist形式。 请帮我解决这个问题

提前谢谢

我附上下面的代码

主课

package com.example.listview;

import java.util.ArrayList;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.Intent;
import android.text.method.DialerKeyListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

public class MainActivity extends Activity 
{


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final ListView lv = (ListView) findViewById(R.id.listView1);
        final Button btn = (Button) findViewById(R.id.button1);
        final EditText input = (EditText) findViewById(R.id.editText1);

        btn.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {

//              array.add(input.getText().toString());
//              adapter.notifyDataSetChanged();
                Intent i = new Intent(MainActivity.this,adddialog.class);
                startActivity(i);

            }
        });
        ArrayList<String> array = new ArrayList<String>();
        final ArrayAdapter<String> adapter = new ArrayAdapter<String> (MainActivity.this,android.R.layout.simple_list_item_1,array); 
        lv.setAdapter(adapter);

        Intent i2 = getIntent();
        String n = i2.getStringExtra("name");
        array.add(n);
        adapter.notifyDataSetChanged();


    }






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

}
开始活动并获得结果 Android中有一个功能已经支持从活动中获取结果。有关如何执行此操作的说明,请参见标题为“开始活动并获得结果”的部分。还有一个代码示例

有时,您希望在活动结束时从活动中获得结果。 例如,您可以启动一个活动,让用户选择 联系人列表中的人;当它结束时,它返回 被选中。为此,您可以将startActivityForResult(Intent, int)版本,带有第二个整数参数,用于标识调用。这个 结果将通过onActivityResult(int,int,Intent)返回 方法

当活动退出时,它可以调用setResult(int)返回数据 给它的父母。它必须始终提供一个结果代码,该代码可以是 标准结果结果取消、结果确定或任何自定义值 从第一个用户的结果开始。此外,它还可以选择返回 支持包含所需任何附加数据的意图。所有这些 信息将显示回父级的Activity.onActivityResult()上, 以及它最初提供的整数标识符

总结

总之,您应该使用
startActivityForResult(i1)
并在
main activity.java
中实现
onActivityResult()
方法来获取用户在
EditText
中输入的数据。onActivityResult()的
onActivityResult()实现如下所示:

    // Get the result of the addDialog activity.
    protected void onActivityResult(int reqCode, int resultCode, Intent data) {
        String n = data.getStringExtra("name");
        myArrayAdapter.add(n);
        myArrayAdapter.notifyDataSetChanged();
    }

您可以执行
array.add()请参阅,谢谢您的回复,但它仍然无法工作。可能是因为适配器是
最终版的
;我将适配器从最终适配器更改为正常适配器,但仍然没有更改。嗨,你能解释一下你的实际要求吗?对不起,我是stackoverflow的新手,我不知道。非常感谢你的帮助。
    // Get the result of the addDialog activity.
    protected void onActivityResult(int reqCode, int resultCode, Intent data) {
        String n = data.getStringExtra("name");
        myArrayAdapter.add(n);
        myArrayAdapter.notifyDataSetChanged();
    }