-1

いくつかの画像ボタンをクリックしていくつかのアクションを実行すると、関数click()を呼び出しています。

public void onClick(View v)
{
    switch (v.getId()) {
    case R.id.btn_first_person:

        Log.i("utc","1st person");
        this.flip(R.id.btn_i);
        this.flip(R.id.btn_we);
        break;

    case R.id.btn_i:
        Log.i("utc","I clicked");
        this.change("I","play");
        break;

    case R.id.btn_we:
        Log.i("utc","We clicked");
        this.change("We","plays");
        break;

    default: Log.i("utc","default");
            Log.i("utc","asa" + v.getId());





    }
    }

「btn_i」ボタンは正常に機能していますが、「btn_we」ボタンをクリックすると、デフォルトに戻ります。どうしてか分かりません??

public void change(String person, String verb)
{
    txtUsageFirst=(TextView)findViewById(R.id.utc_usage_one);
    txtUsageSecond=(TextView)findViewById(R.id.utc_usage_two);
    txtUsageFirst.setText(person);
    txtUsageSecond.setText(verb);

}

また、最初のケース(btn_first_person)でこのフリップ関数を呼び出すと、btnTemp =(Button)findviewbyid(r);でエラーが発生します。行[logcatは"check"、"1"を表示しません]

public void flip(Integer r)
{
    Log.d("check","enetred flip");
    Log.d("check",r.toString());
    btnTemp=(Button) findViewById(r);
    Log.d("check","1");
    if(btnTemp.getVisibility()== View.VISIBLE)
    {
        Log.d("check","invisible now");
        btnTemp.setVisibility(View.GONE);
    }
    else
    {
        Log.d("check","visible now");
        btnTemp.setVisibility(View.VISIBLE);
    }



}
4

1 に答える 1

0

フリップ関数の場合、ImageButtonをButtonにキャストしているため、エラーが発生する可能性があります。

于 2012-08-31T09:26:18.437 に答える