获取 ProfilePictureView Android Studio 的数据

Posted

技术标签:

【中文标题】获取 ProfilePictureView Android Studio 的数据【英文标题】:Get data for ProfilePictureView Android Studio 【发布时间】:2016-08-14 15:03:07 【问题描述】:

我试图从 facebook 获取并显示用户数据。

我在活动中创建了 ProfilePictureView 和 userName。 (我为此设置了 id)

接下来我想从 java 类发布数据。

当“按钮”成功 login_result 我得到 id 并且此数据发布到活动。 但这不起作用...

功能:

protected void getLoginDetails(LoginButton login_button)
        // Callback registration
        login_button.registerCallback(callbackManager, new FacebookCallback <LoginResult>() 
            @Override
            public void onSuccess(LoginResult login_result) 
                    Intent intent = new Intent(MainActivity.this,HomePage.class);
                    startActivity(intent);

                    ProfilePictureView profilePictureView = (ProfilePictureView) findViewById(R.id.userProfilePicture);
                    profilePictureView.setCropped(true);
                    profilePictureView.setProfileId(login_result.getId());

                    TextView Name = (TextView) findViewById(R.id.userName);
                    Name.setText(login_result.getName());

            

            @Override
            public void onCancel() 
                // code for cancellation
            
            @Override
            public void onError(FacebookException exception) 
                //  code to handle error
            
        );
    

活动:

<com.facebook.login.widget.ProfilePictureView
    android:id="@+id/userProfilePicture"
    android:layout_
    android:layout_
    android:layout_centerInParent="true"
    android:layout_gravity="center_horizontal" />

<TextView
    android:id="@+id/userName"
    android:layout_
    android:layout_
    android:layout_gravity="center_horizontal"
    android:textColor="#333"
    android:textSize="18sp" />

【问题讨论】:

请添加更详细的描述或您遇到的错误/问题的输出,以便社区可以更好地帮助您。 简单地说:.getId() 和 getName - 找不到函数。 【参考方案1】:

下面是我从FB获取一些信息的示例代码,记得声明权限并从onComplete方法获取结果:

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() 
@Override
public void onSuccess(LoginResult loginResult) 
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this,
Arrays.asList("user_friends","user_location","user_birthday","user_likes","user_photos"));

GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() 
@Override
public void onCompleted(JSONObject object, GraphResponse response) 
String strName = object.optString("name");
name.setText(strName);
String strBirthday = object.optString("birthday");
birthday.setText(strBirthday);
String strLocation = object.optString("location");
try 
JSONObject objLocation = new JSONObject(strLocation);
String locationName = objLocation.optString("name");
location.setText(locationName);
 catch (JSONException e) 
e.printStackTrace();

profilePictureView.setProfileId(object.optString("id"));



);

【讨论】:

以上是关于获取 ProfilePictureView Android Studio 的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将ProfilePictureView更改为圆形图像。 Drawable无法正常工作

如何获取标记为 Tag1 AND Tag2 AND ... 的所有项目以获取 3 表标记解决方案

在 Mongoose 中使用 AND 从两个 OR 查询中获取结果

获取单元格索引 - Peek and Pop

PYQT5 (十八)文件拖放(drag and drop)并获取文件信息

getComputedStyle(and currentStyle)