如何使用微调器更改 json 数组的索引值?

Posted

技术标签:

【中文标题】如何使用微调器更改 json 数组的索引值?【英文标题】:How to change the index value of json array using spinner? 【发布时间】:2020-11-15 02:04:14 【问题描述】:
@Override
public void onResponse(String response)
    
    try 
        JSONArray jArray = new JSONArray(response.toString());
        if (jArray.length() > 2) 
            JSONObject json_obj = jArray.getJSONObject(2);
        
    


我想使用微调器更改getJSONObject(2) 的索引值。

【问题讨论】:

"更改getJSONObject(2) 的值" 你的意思是更改2 参数? 是的,我可以使用微调器或其他任何我想在不同状态下显示 covid 案例的东西来更改它 【参考方案1】:

您可以查看此示例项目:

MainActivity.java

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity

    @Override
    protected void onCreate(Bundle savedInstanceState)
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Spinner spinner = findViewById(R.id.spinner);
        Button button = findViewById(R.id.button);

        // set spinner values
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.json_options, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        // button click listener
        button.setOnClickListener(new View.OnClickListener()
        
            @Override
            public void onClick(View v)
            
                // spinner.getSelectedItemPosition() - to get which item is chosen in spinner, indexed from 0
                Log.d("Info", "Selected JSON: " + (spinner.getSelectedItemPosition() + 1));
            
        );
    

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Spinner
        android:id="@+id/spinner"
        android:layout_
        android:layout_ />

    <Button
        android:id="@+id/button"
        android:layout_
        android:layout_
        android:text="Do sth with value from spinner" />

</LinearLayout>

字符串.xml

<string-array name="json_options">
    <item>JSON One</item>
    <item>JSON Two</item>
    <item>JSON Three</item>
</string-array>

所以我认为在你的情况下它看起来像这样:

@Override
public void onResponse(String response)
    
    try 
        JSONArray jArray = new JSONArray(response.toString());
        if (jArray.length() > 2) 
            JSONObject json_obj = jArray.getJSONObject(spinner.getSelectedItemPosition());
        
    

【讨论】:

以上是关于如何使用微调器更改 json 数组的索引值?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改微调器文本大小和文本颜色?

如何更改android微调器弹出动画

如何根据两个不同活动中其他微调器的位置更改微调器的位置

如何将选定的微调器 id 传递给片段

如何在微调器中更改单选按钮颜色

当微调器数据来自服务器时,向微调器添加第一个值