-1

私はアンドロイド開発に不慣れです(私はac#asp.netの男です)api10以降と互換性のあるアプリを作成しようとしており、if then elseステートメントで異なるxmlを使用して画面の向きを処理しています。onClick イベントである各 xml (imageView1 - imageView6 という名前) に 6 つの imageView コントロールがあります (imagebutton が画像にパディングを配置する方法は好きではありません)。その理由は、方向に基づいて画像サイズを変更する必要があるため、合計 12 個の画像 (ハイライト画像を含めると 24 個) になるためです。

両方の xmls imageViews を imageView1 から imageView6 のままにしておくと、アプリはクラッシュしません、12 個の画像をそれぞれ個別に処理することはできません。私はそれらのうちの6つだけで働いています。xml の imageView を imageView7 から imageView12 に変更すると、アプリが完全にクラッシュし、その理由がわかりません。これは、非常に単純なものを見過ごしているようですが、それが何であるかわかりません。これが私のコードです:

package com.firstmelissa.FirstBaptistMelissa;

import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener {

ImageView display1
ImageView display2;
ImageView display3;
ImageView display4;
ImageView display5;
ImageView display6;
ImageView display7;
ImageView display8;
ImageView display9;
ImageView display10;
ImageView display11;
ImageView display12;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_layout, menu);
        return true;
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Display getOrient = getWindowManager().getDefaultDisplay();
        if (getOrient != null)
        {
            int orientation = getResources().getConfiguration().orientation;   
            if (orientation == 1) {
                // Portrait
                setContentView(R.layout.main_layout);

            display1 = (ImageView) findViewById(R.id.imageView1);
            ImageView image1 = (ImageView) findViewById(R.id.imageView1);
            display2 = (ImageView) findViewById(R.id.imageView2);
            ImageView image2 = (ImageView) findViewById(R.id.imageView2);
            display3 = (ImageView) findViewById(R.id.imageView3);
            ImageView image3 = (ImageView) findViewById(R.id.imageView3);
            display4 = (ImageView) findViewById(R.id.imageView4);
            ImageView image4 = (ImageView) findViewById(R.id.imageView4);
            display5 = (ImageView) findViewById(R.id.imageView5);
            ImageView image5 = (ImageView) findViewById(R.id.imageView5);
            display6 = (ImageView) findViewById(R.id.imageView6);
            ImageView image6 = (ImageView) findViewById(R.id.imageView6);

            image1.setOnClickListener(this);
            image2.setOnClickListener(this);
            image3.setOnClickListener(this);
            image4.setOnClickListener(this);
            image5.setOnClickListener(this);
            image6.setOnClickListener(this);

        }
        else if (orientation == 2) {
            // Landscape
            setContentView(R.layout.main_landscape);
            //Intent intent = new Intent(this, MainActivityland.class);
            //this.startActivity(intent);

            display7 = (ImageView) findViewById(R.id.imageView7);
            ImageView image7 = (ImageView) findViewById(R.id.imageView7);
            display8 = (ImageView) findViewById(R.id.imageView8);
            ImageView image8 = (ImageView) findViewById(R.id.imageView8);
            display9 = (ImageView) findViewById(R.id.imageView9);
            ImageView image9 = (ImageView) findViewById(R.id.imageView9);
            display10 = (ImageView) findViewById(R.id.imageView10);
            ImageView image10 = (ImageView) findViewById(R.id.imageView10);
            display11 = (ImageView) findViewById(R.id.imageView11);
            ImageView image11 = (ImageView) findViewById(R.id.imageView11);
            display12 = (ImageView) findViewById(R.id.imageView12);
            ImageView image12 = (ImageView) findViewById(R.id.imageView12);


            image7.setOnClickListener(this);
            image8.setOnClickListener(this);
            image9.setOnClickListener(this);
            image10.setOnClickListener(this);
            image11.setOnClickListener(this);
            image12.setOnClickListener(this);
            }
}  
    }

public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()){
        case R.id.imageView1:
        Toast.makeText(MainActivity.this, "This is Short Notification",
        Toast.LENGTH_SHORT).show();
        display1.setImageResource(R.drawable.ignitebuttonh);
        display2.setImageResource(R.drawable.strivebutton);
        display3.setImageResource(R.drawable.adultsbutton);
        display4.setImageResource(R.drawable.marriedsbutton);
        display5.setImageResource(R.drawable.womansbutton);
        display6.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView2:
        display2.setImageResource(R.drawable.strivebuttonh);
        display1.setImageResource(R.drawable.ignitebutton);
        display3.setImageResource(R.drawable.adultsbutton);
        display4.setImageResource(R.drawable.marriedsbutton);
        display5.setImageResource(R.drawable.womansbutton);
        display6.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView3:
        display3.setImageResource(R.drawable.adultsbuttonh);
        display2.setImageResource(R.drawable.strivebutton);
        display1.setImageResource(R.drawable.ignitebutton);
        display4.setImageResource(R.drawable.marriedsbutton);
        display5.setImageResource(R.drawable.womansbutton);
        display6.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView4:
        display4.setImageResource(R.drawable.marriedsbuttonh);
        display3.setImageResource(R.drawable.adultsbutton);
        display2.setImageResource(R.drawable.strivebutton);
        display1.setImageResource(R.drawable.ignitebutton);
        display5.setImageResource(R.drawable.womansbutton);
        display6.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView5:
        display5.setImageResource(R.drawable.womansbuttonh);
        display4.setImageResource(R.drawable.marriedsbutton);
        display3.setImageResource(R.drawable.adultsbutton);
        display2.setImageResource(R.drawable.strivebutton);
        display1.setImageResource(R.drawable.ignitebutton);
        display6.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView6:
        display6.setImageResource(R.drawable.sermonbuttonh);
        display5.setImageResource(R.drawable.womansbutton);
        display4.setImageResource(R.drawable.marriedsbutton);
        display3.setImageResource(R.drawable.adultsbutton);
        display2.setImageResource(R.drawable.strivebutton);
        display1.setImageResource(R.drawable.ignitebutton);
    case R.id.imageView7:
        Toast.makeText(MainActivity.this, "This is Short Notification",
        Toast.LENGTH_SHORT).show();
        display7.setImageResource(R.drawable.ignitebuttonh);
        display8.setImageResource(R.drawable.strivebutton);
        display9.setImageResource(R.drawable.adultsbutton);
        display10.setImageResource(R.drawable.marriedsbutton);
        display11.setImageResource(R.drawable.womansbutton);
        display12.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView8:
        display8.setImageResource(R.drawable.strivebuttonh);
        display7.setImageResource(R.drawable.ignitebutton);
        display9.setImageResource(R.drawable.adultsbutton);
        display10.setImageResource(R.drawable.marriedsbutton);
        display11.setImageResource(R.drawable.womansbutton);
        display12.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView9:
        display9.setImageResource(R.drawable.adultsbuttonh);
        display8.setImageResource(R.drawable.strivebutton);
        display7.setImageResource(R.drawable.ignitebutton);
        display10.setImageResource(R.drawable.marriedsbutton);
        display11.setImageResource(R.drawable.womansbutton);
        display12.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView10:
        display10.setImageResource(R.drawable.marriedsbuttonh);
        display9.setImageResource(R.drawable.adultsbutton);
        display8.setImageResource(R.drawable.strivebutton);
        display7.setImageResource(R.drawable.ignitebutton);
        display11.setImageResource(R.drawable.womansbutton);
        display12.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView11:
        display11.setImageResource(R.drawable.womansbuttonh);
        display10.setImageResource(R.drawable.marriedsbutton);
        display9.setImageResource(R.drawable.adultsbutton);
        display8.setImageResource(R.drawable.strivebutton);
        display7.setImageResource(R.drawable.ignitebutton);
        display12.setImageResource(R.drawable.sermonbutton);
        break;
    case R.id.imageView12:
        display12.setImageResource(R.drawable.sermonbuttonh);
        display11.setImageResource(R.drawable.womansbutton);
        display10.setImageResource(R.drawable.marriedsbutton);
        display9.setImageResource(R.drawable.adultsbutton);
        display8.setImageResource(R.drawable.strivebutton);
        display7.setImageResource(R.drawable.ignitebutton);
        break;
    }       
}

}

4

1 に答える 1

1

私はそれが簡単なことだと知っていました!case R.id.imageView6:と の間にbreak ステートメントがありませんでしたcase R.id.imageView7:。これで問題は完全に解決しました。見つけてくれてありがとう!

于 2012-08-04T16:49:22.923 に答える