facebook sdk android墙贴线休息

时间:2010-07-19 13:04:48

标签: android facebook

我正在制作一个应用程序,使用facebook sdk for android将一些信息发布到你的Facebook墙上。这样可行,但我似乎无法在帖子上获得新的内容。我已经尝试了\n,但它确实有效。有什么建议吗?

这是我的代码:

Bundle parameters = new Bundle();

String temp = "";
for (int i = 0; i < mArrayAdapter.getCount(); i++){
            temp = temp + mArrayAdapter.getItem(i) + "\n"; // Not working
}

parameters.putString("message", temp);
mFacebook.dialog(this, "stream.publish", parameters, new DialogListener());  

谢谢,

詹姆斯·福特

5 个答案:

答案 0 :(得分:1)

嗨詹姆斯我之前尝试过,即使使用HTML代码,但我认为这是不可能的。 原因是,Facebook必须有一个控制权来避免他的帖子上出现空格或换行。

答案 1 :(得分:1)

流信息中不允许使用新行(过去您可能看过它们的事实是Facebook上的错误)。

答案 2 :(得分:0)

利用JSON在Facebook上发布..  怎么样? look here

步骤: -

步骤1: - 在此链接中,您将了解如何使用JSON将文本设置为TEXTVIEW。

第2步: - 可能这不是你要找的:)将textview的文本分配给某个字符串           使用GetText().ToString

第3步: - 使用此字符串发布到Facebook。

第4步: - 我在谷歌搜索后花了很多时间做了同样的事情,最后得到了结果           通过使用这个技巧。你可以看到我在测试期间发布的帖子here

步骤5: - 使用

设置此文本框的可见性
tv.setVisibility(View.GONE)

你完成了对Facebook的发帖.. 让facebook和textview处理他们如何管理空格和换行符:D

对于像我这样的新手来说,有些编码工作......

我是点击按钮

发布的

1)

 tv= (TextView)findViewById(R.id.tv);
 click=(Button)findViewById(R.id.btn1);
    click.setOnClickListener(mthdpost);

2)将点击事件添加到此按钮

   private View.OnClickListener mthdpost=new View.OnClickListener() {

        @Override
        public void onClick(View v) {
try {
                String json = "{"

                    + "  \"name\": \"myName\", "

                    + "  \"message\": [\"myMessage1\",\"myMessage2\"],"

                    + "  \"place\": \"myPlace\", "

                    + "  \"date\": \"thisDate\" "

                    + "}";

                /* Create a JSON object and parse the required values */

                JSONObject object = (JSONObject) new JSONTokener(json).nextValue();

                String name = object.getString("name");

                String place = object.getString("place");

                String date = object.getString("date");

                JSONArray message = object.getJSONArray("message");

                String MessageToPost= null;
                tv.setText("Name: "+ name +"\n\n");

                tv.append("Place: "+ place +"\n\n");

                tv.append("Date: "+ date +"\n\n");



                /*JSONObject attachment = new JSONObject();

                attachment.put("Name: ","\n\n");

                attachment.put("Place: ","\n\n");

                attachment.put("Date: ","\n\n");*/

                for(int i=0;i<message.length();i++)

                {

                    tv.append("Message: "+ message.getString(i) +"\n\n");
                    //attachment.put("Message: ","\n\n");

                }
                MessageToPost=tv.getText().toString();
                postToWall(MessageToPost);// called the method having logic to post on wall and sending the textview text to to post as message

                } catch (JSONException e)
                {e.printStackTrace();
                }

                catch(Exception ex)
                {ex.printStackTrace();}

                }


        };

3)发布消息的方法

public void postToWall(String msg){


        Log.d("Tests", "Testing graph API wall post");
        try {
               String response = facebook.request("me");
               Bundle parameters = new Bundle();
               //parameters.putString("message", msg.toString());
               parameters.putString("message", msg);
               parameters.putString("description", "test test test");
               response = facebook.request("me/feed", parameters, 
                       "POST");
               Log.d("Tests", "got response: " + response);
               if (response == null || response.equals("") || 
                       response.equals("false")) {
                  Log.v("Error", "Blank response");
               }
        } catch(Exception e) {
            e.printStackTrace();
        }

        }

希望它能帮助:)

答案 3 :(得分:0)

这对我有用:

StringBuilder messageData = new StringBuilder(title).append('\n')
    .append('\n').append(message).append('\n').append('\n')
    .append(description);
// Message
postParams.putString("message", messageData.toString());

答案 4 :(得分:-1)

这有效:

使用此:<center></center>

而不是br或换行符等。你只能连续做一个(即你不能增加间距)。