2013-05-23 3 views
1

나는 첫 번째 앱을 작성 중이며 여전히 JavaXML을 학습 중입니다. 안드로이드 튜토리얼은 사용자 입력을받는 활동과 단순히 입력을 받고 다른 화면에 표시하는 활동을 설정합니다. 두 번째 활동은 다음과 같습니다.Hello World 튜토리얼에서 확대

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //Get the message from Intent 
    Intent intent = getIntent(); 
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 


    //Create the text view 
    TextView textView = new TextView(this); 
    textView.setTextSize(40); 
    textView.setText(message); 

    setContentView(textView); 
} 

내 질문은 :이 Java 문서 대신 XML에서 'message'를 어떻게 사용할 수 있습니까? 액티비티 화면에 더 추가하고 싶기 때문에 setContentView (textView)를 사용하지 않는 것이 좋습니다. 어떤 해결책을 제안합니까?

답변

3

setContentView()은 활동의 UI를로드하는 데 필요합니다.

  1. 당신은 자바 코드로 레이아웃을 생성 할 수 있습니다 : 당신은 당신이 setContentView()에 보내 주보기를 만들 수있는 두 가지 옵션이 있습니다.

  2. XML 파일로 레이아웃을 만들 수 있습니다.

일반적으로 정적 UI의 경우 두 번째가 선호되고 UI가보다 동적 인 경우 첫 번째가 사용됩니다.

나는 the Official Android Documentation에 익숙해 진 것이 좋습니다. 특히 안드로이드 UI 프레임 워크를 이해하려면 UI Overview을 봐야합니다.

을 사용하여 onCreate() 메서드로 전송되는 Intent에 저장된 "추가 기능"에 사용되는 키를 저장하는 데 관심이있을 수 있습니다.

2

잘 모르겠다면, TextViewlayout 안에 넣고 xml 파일에 넣어서 setContentView)에 사용하십시오.

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rootLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
<TextView 
    android:id="@+id/tv1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Your message"/> // it is better to use strings.xml instead of hard-coded strings 
</LinearLayout> 

같은 뭔가이이 myLayout.xml

public class MyClass extends Activity{ 
TextView tv1; 
rotected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.myLayout); 
tv1 = (TextView) findViewById(R.id.tv1); 
} 

당신은 런타임에 xml 파일에 추가 할 수 없습니다라고 말하지만 지금은 당신이

public class MyClass extends Activity{ 
TextView tv1; 
rotected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.myLayout); 
tv1 = (TextView) findViewById(R.id.tv1); 
tv1.setText("Other Text"); 
} 
를 원하는대로이 TextView에 텍스트를 설정할 수 있습니다

귀하의 질문에 대한 답변을 희망합니다. 귀하의 질문에 정확히 혼란 스럽습니다.