如何通过 ID 或名称在屏幕上获取和显示 JSON 数据 (Android)

How to fetch and display JSON data by id or name on screen (Android)

考虑:

      public RetroPhoto(Integer id, String email, String first_name, String last_name, String avatar) {
        this.id = id;
        this.email = email;
        this.first_name = first_name;
        this.last_name = last_name;
        this.avatar = avatar;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
}

假设我在屏幕上有一个编辑文本和按钮。 我必须通过 JSON 数据通过 ID 获取一个人的详细信息。

因此,当我将 id 键入“1”时,它应该会在按钮下方的 JSON 数据中显示该特定人员的详细信息作为文本视图。它的逻辑是什么?

以上为JSON.

当你得到想要显示的值后,就可以使用这个了:

EditText mEdit;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mEdit = (EditText)findViewById(R.id.edittext);

    callAPI();
}

public void callAPI(){

   /** Do your API call and retrieve the value/id **/

   mEdit.setText("value from API")
}

要事第一。您需要使用 Retrofit、Volley 等网络库通过 API 从服务器获取 JSON 内容。 Retrofit 比 Volley 更快。使用 POST 方法将 id post 发送到服务器,从 API 端你需要根据该 id 获取数据并将其转换为 JSON 并发回响应。

通过此 link 了解更多详细信息。 https://square.github.io/retrofit

如果要获取完整的 JSON 内容,则需要解析列表并获取与人员 ID 相关的 JSON 对象。

在onClick中,可以通过

获取id
// Probably check if it's a valid number and non-empty
int id = parseInt(editTextId.getText().toString())

retrofitInstance.apiCall.enqueue ......
....
onResponse (){
    List<RetroPhoto> list = response.body();
    boolean idFound = false;
    for (int i=0; i< list.size(); i++) {
        if (list.get(i).getId() == id) {
            // You can get details of person here
            idFound = true;
        }
    }
    if (idFound == false) {
        // Toast invalid id message
    }
}
...

因为您正在使用 Retrofit