【问题标题】:compare an array drawable to an array string android studio将可绘制数组与数组字符串进行比较 android studio
【发布时间】:2020-06-11 17:06:54
【问题描述】:

我想将我的微调器值与可绘制图片进行比较,并将文本设置为可见我如何在数组中获取可绘制对象以进行比较我尝试了下面的代码,但没有运气。

if (mSpinner.getSelectedItem().equals("husky") && mImageView.equals(r.nextInt(R.drawable.husky_2317)) {

mTextView2.setVisibility(View.VISIBLE);

}

public class Identify_Breed extends AppCompatActivity {

    private Spinner mDogs;
    private ImageView mImageView;
    private Button mButton;
    private Random r;
    private TextView mTextView;
    private TextView mTextView2;

    //image arrays
    final Integer[] images = {R.drawable.husky_2317, R.drawable.kuvasz_852, R.drawable.papillon_2579,
            R.drawable.vizsla_2681,};

    final String[]  dogs= {"Select Item", "husky", "kuvasz", "papillon", "vizsla"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_identify__breed);
        mImageView = (ImageView) findViewById(R.id.pic1);
        mButton = (Button) findViewById(R.id.button);
        mTextView = (TextView) findViewById(R.id.textView);
        mTextView2 = (TextView) findViewById(R.id.textView2);
        mDogs= (Spinner) findViewById(R.id.spinner);

       // final View root=mDogs.getRootView();
        ArrayAdapter <String> ad1= new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, dogs);

        mDogs.setAdapter(ad1);

        mDogs.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {


                if (mDogs.getSelectedItem().equals("husky") && 
mImageView.equals(r.nextInt(R.drawable.husky_2317)){
                    mTextView2.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

【问题讨论】:

    标签: android arrays string android-studio android-drawable


    【解决方案1】:

    试试

    if (mDogs.getSelectedItem().toString().equals("husky") && (mImageView.getBackground().getConstantState().equals(getResources().getDrawable(R.drawable.husky_2317)).getConstantState())))
    

    【讨论】:

    • 所以我添加了你的代码,最后一个 .getConstantState() 是一个错误。当我删除 .getConstantState() 时它很好,但我试过了,当我使用带有微调器值“husky”的图像“husky_2317”时应用程序停止工作
    • (mImageView.getBackground().getConstantState().equals(getResources().getDrawable(R.drawable.husky_2317).getConstantState())) 这工作正常,但当我点击时我的应用程序仍然崩溃哈士奇在我的微调器上
    • 空对象引用...您没有获取您想要的值。你能把我要看的项目发给我吗?这种方式对我来说更容易调试。
    • drive.google.com/drive/folders/…这里是项目的链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多