2013-02-21 4 views
0

Eclipse IDE에서 Android 앱 개발에 처음입니다.Android : ImageView에서 이미지를 변경하면 편집 문구가 사라졌습니다.

버튼을 클릭하면 ImageText의 이미지와 EditText의 텍스트가 각각 다른 이미지와 텍스트로 대체되는 기본 앱을 만들려고합니다.

그러나 주로 앱이 시작되면 상단에 버튼이 표시되고 ImageView와 EditText가 제대로 작동하지만 버튼을 클릭하면 내 EditText가 사라지는 동안 이미지 만 성공적으로 바뀝니다. . 왜 이런 일이 일어 났는지, 어떻게 바로 잡을 수 있는지 나 좀 도와 주실 수 있습니까?

XML 파일 :

<Button 
    android:id="@+id/button1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/click_it" /> 



<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/button1" 
    android:layout_below="@+id/button1" 
    android:src="@drawable/prac" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignRight="@+id/imageView1" 
    android:layout_below="@+id/imageView1" 
    android:layout_marginTop="30dp" 
    android:ems="10" 
    android:text="hello!" > 

    <requestFocus /> 
</EditText> 

</RelativeLayout> 

자바 파일 :

package com.example.practicetwo; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.*; 
import android.widget.*; 

public class MainActivity extends Activity { 
Button b1; 
ImageView iv1; 
EditText et1; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    b1 = (Button)findViewById(new R.id().button1); 
    iv1 = (ImageView)findViewById(new R.id().imageView1); 
    et1 = (EditText)findViewById(new R.id().editText1); 
    b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      iv1.setImageResource(R.drawable.prac1); 
      et1.setText("how r u?"); 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

} 
+0

새로운 findViewById (R.id(). editText1) – TMichel

+1

과 같이 정적 인 방법으로 액세스를 시도해보십시오. 이미지 prac1이 화면 크기보다 클 수 있으며 prac prac1을 사용하면 'EditText'가 푸시 다운됩니다. 상대 레이아웃 대신 '선형 레이아웃'을 사용해보십시오. 쓰기시 – Naveen

+0

, et1 = (EditText) findViewById (R.id(). editText1); 그것은 오류를 보여줍니다. –

답변

3

이미지 prac1는 화면의 크기보다 큰 수 있습니다, 당신은 prac1 EditText와 prac 교체로 아래로 밀어 . RelativeLayout 대신 LinearLayout을 사용해보세요.

+0

알려주세요.이 EditText와 ImageView의 가시성을 설정할 수 있습니까? –

+0

한 번 더 의심 ... 내가이 응용 프로그램을 내 sd 카드로 전송하면 "AIDE"라는 오류 메시지가 나타납니다. "aapt : 잘못된 resourse 디렉토리 이름 :/mnt/sdcard/AppProjects/PracticeTwo/res/drawwable-xxhdpi "제발 그것을 수정하는 방법을 말해주십시오 ... 긴급. –

+1

당신은 항상 visibility 부분에 대해'view.setVisibility (false)'를 사용할 수 있습니다. 그리고 나는 xxhdpi가 장치 android 버전에 의해 인식되지 않을 수도 있다고 생각합니다. – Naveen

관련 문제