Java 如何共享适配器的内容?

Java 如何共享适配器的内容?,java,android,eclipse,android-arrayadapter,Java,Android,Eclipse,Android Arrayadapter,我想在用户按下对话框的肯定按钮时共享适配器的全部内容。 我试过这个: ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); adapter.add("String1"); adapter.add("String2"); adapter.add("String3"); adapter.add("String4"); dialo

我想在用户按下对话框的肯定按钮时共享适配器的全部内容。 我试过这个:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

adapter.add("String1");
adapter.add("String2");
adapter.add("String3");
adapter.add("String4");

dialog.setPositiveButton("Share", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {

            Intent intent = new Intent ();
            intent.setAction(Intent.ACTION_SEND);
            intent.setType("text/plain");
            for(int i = 0; i <= adapter.getCount(); i++){
                intent.putExtra(Intent.EXTRA_TEXT, adapter.getItem(i));
            }
            startActivity(Intent.createChooser(intent, "Share via")
            );
        }
    });
它不起作用。当按下共享按钮时,应用程序会崩溃。 有什么想法吗

编辑:谢谢你的帮助。这是最终的解决方案:

试试这个:

 for(int i = 0; **i < adapter.getCount()**; i++)
试试这个:

 for(int i = 0; **i < adapter.getCount()**; i++)

这将解决您的问题。

我猜您在以下行中遇到ArrayIndexOutOfBounds异常:

intent.putExtra(Intent.EXTRA_TEXT, adapter.getItem(i));    //at getItem(i)
这是因为上面的条件:

for(int i = 0; i **<=** adapter.getCount(); i++)

其中name是您正在创建的附加程序的名称,前缀为包名,value是字符串的数组列表。

如果您包含错误,那将非常有用。抱歉,混淆了,我的意思是应用程序刚刚崩溃。是的,请附加崩溃日志,因此,我们知道问题的真正原因是什么,因为为适配器设置final修饰符在技术上不会造成任何麻烦。你是对的,不是final导致应用程序崩溃,而是在创建共享意图时崩溃。编辑了包含崩溃日志的线程。好吧,谢谢。。。它确实解决了我的问题。现在出现了一个新问题:它只共享适配器的最后一行:这是因为您在for循环中覆盖了相同的额外内容。你知道如何克服这个问题吗?我需要遍历适配器的每一行,并将它们全部添加到意图中。您可以将文本添加到数组列表中,将此arraylist添加到bundle,最后将bundle添加到意图中。我使用StringBuilder成功地克服了这一问题。。。谢谢你,伙计:
for(int i = 0; i **<=** adapter.getCount(); i++)
for(int i = 0; i **<** adapter.getCount(); i++)
i.putStringArrayListExtra(name, value);