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

안드로이드 스튜디오 질문입니다!

0 추천

activity_main.xml edittext에서 1을 입력했을 때 p1 이라는 이미지를 띄우고 2를 입력했을 때는 p2 이미지를 띄우는 것 처럼 500번 까지 이미지를 출력해주는 어플을 만드려고 합니다.

근데 밑의 소스 처럼 하니까 1을 입력했을 때는 정상적으로 p1이 출력되는데 2를 입력하면 그냥 어플이 오류 메시지가 뜨면서 종료 되더라구요. 어떻게 해야할까요ㅠ

 

MainActivity.java

package com.jangdol.intenttest00;
 
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
 
import org.w3c.dom.Text;
 
import java.security.PublicKey;
import java.util.ArrayList;
 
public class MainActivity extends AppCompatActivity {
 
    Button b1;
    EditText e1;
    String input1;
    ImageView imageView1;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        b1 = (Button) findViewById(R.id.button1);
        e1 = (EditText) findViewById(R.id.e1);
        Bitmap sheet = BitmapFactory.decodeResource(getResources(),(R.drawable.p1));
        imageView1 = (ImageView) findViewById(R.id.imageView1);
            b1.setOnClickListener(new View.OnClickListener() { //b1버튼을 클릭했을 때
                @Override
                public void onClick(View view) {
input1= e1.getText().toString(); //input1로 e1에 입력한 글씨를 초기화
Intentintent1= new Intent(getApplicationContext(), ShowMe.class);
                        if (Integer.parseInt(input1) == 1) {
imageView1.setImageResource(R.drawable.p1);
startActivity(intent1);
                        }
                        else  if (Integer.parseInt(input1)==2){
imageView1.setImageResource(R.drawable.p2);
startActivity(intent1);
                        }
else {
Toast.makeText(getApplicationContext(),"다시 입력하세요", Toast.LENGTH_SHORT).show();
                        }
                }
            });
    }
}

ShowMe.java

package com.jangdol.intenttest00;
 
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
 
public class ShowMe extends AppCompatActivity{
 
    Button b1;
    protected void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sub1);
 
        b1 = (Button) findViewById(R.id.button1);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
            }
        });
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jangdol.intenttest00">
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/praise"
        android:label="기쁨으로 찬양"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <activity android:name=".ShowMe"
            android:screenOrientation="portrait"/>
    </application>
 
</manifest>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
 
    <TextView
        android:id="@+id/t1"
        android:layout_width="370dp"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="14dp"
        android:text="짱돌의 어플을 사용해주셔서 감사합니다!"
        android:textSize="22sp" />
 
    <EditText
        android:id="@+id/e1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginStart="44dp"
        android:layout_marginTop="204dp"
        android:hint="원하시는 장 수를 입력해주세요." />
 
    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="61dp"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/e1"
        android:layout_toEndOf="@+id/e1"
        android:text="이동" />
 
</RelativeLayout>

sub1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.jangdol.intenttest00.MainActivity">
 
 
    <ImageView
        android:id="@+id/imageView1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="match_parent"
        android:layout_height="520dp"
        android:src="@drawable/p1" />
 
    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="돌아가기"
        android:layout_gravity="center"
        android:id="@+id/button1"/>
 
</LinearLayout>

 

익명사용자 님이 2018년 9월 6일 질문

2개의 답변

0 추천
ImageView는 ShowMe 액티비티에 있기 때문에

MainActivity에서 set을 하시면 에러가 발생합니다.

 

MainActivity에서 startActivity를 할때, putExtra로 ShowMe액티비티로 값을 넘기셔서

ShowMe액티비티에서 setBackgroundResouce를 해주셔야 합니다.
뱅구다 (11,280 포인트) 님이 2018년 9월 7일 답변
0 추천

MainActivity에서 set을 하시면 에러가 발생합니다.
how to delete instagram account

ivan (140 포인트) 님이 2018년 9월 10일 답변
ivan님이 2018년 9월 10일 수정
...