如何传递stringbuilder并在另一个类中显示出来

时间:2013-07-15 08:31:55

标签: android android-intent android-contacts

我能够检索联系人选择器的联系人列表,现在我如何通过stringbuilder并在另一个班级中显示出来。我想过使用意图,但它没有用。 请帮忙。

 @Override
        public void onClick(View v) {
            StringBuilder checkedcontacts= new StringBuilder();
            System.out.println("............"+ma.mCheckStates.size());
            for(int i = 0; i < name1.size(); i++)
                {
                if(ma.mCheckStates.get(i)==true)
                {
                     checkedcontacts.append(name1.get(i).toString());
                     checkedcontacts.append("\n");
                }
                else
                {
                    System.out.println("..Not Checked......"+name1.get(i).toString());
                }

            }

          finish();

          Intent i = new Intent (this,SecondActivity.class);
         i.putExtra("str",checkedcontacts);
         startActivity(i);


        }       
    });
}

错误:

Intent i = new Intent (this,SecondActivity.class);
             i.putExtra("str",checkedcontacts);
             startActivity(i);

2 个答案:

答案 0 :(得分:2)

使用StringBuilder.toString()将StringBuilder传递给Intent。

 Intent i = new Intent (this,SecondActivity.class);
 i.putExtra("str",checkedcontacts.toString());
 startActivity(i);

您应该在上面的代码段之后使用finish();。像

 //finish() //Remove this finish
 Intent i = new Intent (this,SecondActivity.class);
 i.putExtra("str",checkedcontacts.toString());
 startActivity(i);
 finish()

在listner中,您不能将其用作上下文对象。您应该使用getApplicationContext()或ActivityName.this。像

Intent i = new Intent (YourACTIVITYName.this, SecondActivity.class);

//OR

Intent i = new Intent (getApplicationContext(), SecondActivity.class);

答案 1 :(得分:0)

是的,StringBuilder :: toString(),参见ref:http://docs.oracle.com/javase/tutorial/java/data/buffers.html