마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지를 각 case마다 여러장 넣고 싶은데 어떻게 해야하나요?

0 추천

case마다 이미지파일들을 여러장 넣어서 작동하게끔 하고싶습니다.

어떻게 해야하나요??

현재 제가 만들어놓은 java입니다.

public class Main2Activity extends AppCompatActivity {
    static final String[] LIST_MENU = {"1.균열보수", "2.누수백태주입(울트라팩)", "3.아크릴배면주입공법", "4.철근노출부 단면복구", "5.단면복구(REFLASH)", "6.터널라이닝 배면공동 보수","7.유도동판 설치","8.신축형 유도판설치","9. 2-ARCH Tunnel 수직배수관로 준설","10. 중앙배수관로 Con′c 막힘개소 보수공법","11. 종단배수관로 준설","12. 횡단배수관로 준설","13. 철근콘크리트 탄산화 보수"};

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

        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, LIST_MENU) ;

        ListView listView = (ListView) findViewById(R.id.listview1) ;
        listView.setAdapter(adapter);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View v, int position, long id) {
                String strtext= (String) parent.getItemAtPosition(position);
                switch(position)
                {
                    case 0:
                        Intent intent0 = new Intent(Main2Activity.this, img1.class);
                        intent0.putExtra("img", R.drawable.img01);
                        startActivity(intent0);
                        break;
                    case 1:
                        Intent intent1 = new Intent(Main2Activity.this, img1.class);
                        intent1.putExtra("img", R.drawable.img02);
                        startActivity(intent1);
                        break;
                    case 2:
                        Intent intent2 = new Intent(Main2Activity.this, img1.class);
                        intent2.putExtra("img", R.drawable.img03);
                        startActivity(intent2);
                        break;
                    case 3:
                        Intent intent3 = new Intent(Main2Activity.this, img1.class);
                        intent3.putExtra("img", R.drawable.img03);
                        startActivity(intent3);
                        break;
                    case 4:
                        Intent intent4 = new Intent(Main2Activity.this, img1.class);
                        intent4.putExtra("img", R.drawable.img03);
                        startActivity(intent4);
                        break;
                    case 5:
                        Intent intent5 = new Intent(Main2Activity.this, img1.class);
                        intent5.putExtra("img", R.drawable.img03);
                        startActivity(intent5);
                        break;
                    case 6:
                        Intent intent6 = new Intent(Main2Activity.this, img1.class);
                        intent6.putExtra("img", R.drawable.img03);
                        startActivity(intent6);
                        break;
                    case 7:
                        Intent intent7 = new Intent(Main2Activity.this, img1.class);
                        intent7.putExtra("img", R.drawable.img03);
                        startActivity(intent7);
                        break;
                    case 8:
                        Intent intent8 = new Intent(Main2Activity.this, img1.class);
                        intent8.putExtra("img", R.drawable.img03);
                        startActivity(intent8);
                        break;
                    case 9:
                        Intent intent9 = new Intent(Main2Activity.this, img1.class);
                        intent9.putExtra("img", R.drawable.img03);
                        startActivity(intent9);
                        break;
                    case 10:
                        Intent intent10 = new Intent(Main2Activity.this, img1.class);
                        intent10.putExtra("img", R.drawable.img03);
                        startActivity(intent10);
                        break;
                    case 11:
                        Intent intent11 = new Intent(Main2Activity.this, img1.class);
                        intent11.putExtra("img", R.drawable.img03);
                        startActivity(intent11);
                        break;
                    case 12:
                        Intent intent12 = new Intent(Main2Activity.this, img1.class);
                        intent12.putExtra("img", R.drawable.img03);
                        startActivity(intent12);
                        break;

                }




            }
        });
    }
}
ahjakssha (140 포인트) 님이 2017년 5월 11일 질문

1개의 답변

0 추천
현재 이해하고 계신 수준에서 가장간단한 방법은 인텐트에 키값을 달리하여 엑스트라를 추가하는 방법입니다.

intent.putExtra("img1",리소스아이디1);

intent.putExtra("img2",리소스아이디2);

intent.putExtra("img3",리소스아이디3);

...

intent.putExtra("imgN",리소스아이디N);

startActivity(intent);
Charlesz (4,420 포인트) 님이 2017년 5월 11일 답변
단순히 엑스트라를 추가하니 추가된 엑스트라가 기존 엑스트라를 덮어버리네요..
키값은 "img1" 이부분을 뜻하는건가요??  키값을 임의로 바꿔도 상관없나요??
아니면 따로 어디서 설정을 해줘야하는건가요??
키값은 프로그래머가 정하는것입니다.
나중에 getIntExtra 또는 getStringExtra등의 메소드를 쓸때
키값의 구분으로 원하는 데이터를 뽑아올수 있습니다
getIntExtra를 통해 설정을 해봤는데, 이미지가 아무것도 안뜨네요

public class img1 extends AppCompatActivity {

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

        ImageView imageView= (ImageView)findViewById(R.id.imageView1);

        Intent intent = getIntent();
        imageView.setImageResource(intent.getIntExtra("img1", 0));
        imageView.setImageResource(intent.getIntExtra("img2", 0));
        imageView.setImageResource(intent.getIntExtra("img", 0));

이건 mainactivity.java int문입니다.
case 0:
                        Intent intent0 = new Intent(Main2Activity.this, img1.class);
                        intent0.putExtra("img1", R.drawable.img01);
                        intent0.putExtra("img2", R.drawable.img02);
                        startActivity(intent0);
이미지뷰는 하나인데 이미지를 여러개 띄우려고 하시고 계시군요.
이미지뷰에 마지막으로 setImageResource한게 적용됩니다.
현재 키값으로 img를 넣은 엑스트라를 가지고 오고 있기 때문에 데이터가 기본값 0을 리턴하여 이미지를 찾을수 없을겁니다.

레이아웃에 이미지뷰를 하나 더 만드셔서
imageView1.setImageResource(intent.getIntExtra("img1", 0));
imageView2.setImageResource(intent.getIntExtra("img2", 0));

대략 이러한 형태로 불러보세요
...