2015-04-23 2 views
-1

Я хочу запустить приложение, используя Java-код вместо XML-файлов.
Приложение не работает на моем телефоне/эмуляторе и рушится каждый раз.Как кодировать Относительная компоновка в java, а не в xml?

код выглядит следующим образом:

package com.nikhil.relativelayoutjavacode; 

import android.support.v7.app.ActionBarActivity;  
import android.os.Bundle;  
import android.view.Menu;  
import android.view.MenuItem;  
import android.widget.Button;  
import android.widget.EditText;  
import android.widget.RelativeLayout;  
import android.widget.RelativeLayout.LayoutParams;  
import android.widget.TextView;  

public class MainActivity extends ActionBarActivity { 

    RelativeLayout main; 
    EditText userNameValue, passwordValue; 
    TextView message, userName, password; 
    LayoutParams messageDimensions; 
    Button login; 

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

     init(); 
     createMessageTextView(); 
     main.addView(message, messageDimensions); 
     setContentView(main); 
    } 

    private void init() { 
     // TODO Auto-generated method stub 
     main = new RelativeLayout(this); 
     LayoutParams mainDimensions = new LayoutParams(
       LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
     main.setLayoutParams(mainDimensions); 

     userNameValue = new EditText(this); 
     passwordValue = new EditText(this); 
     message = new TextView(this); 
     userName = new TextView(this); 
     password = new TextView(this); 
     login = new Button(this); 

    } 

    private void createMessageTextView() { 
     LayoutParams messageDimensions = new LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     messageDimensions.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     message.setText("Please Login First"); 
     message.setLayoutParams(messageDimensions); 
    } 
} 
+3

Проверьте свой логарифм и разместите его здесь –

ответ

1

Здесь:

main.addView(message, messageDimensions); 

messageDimensions является null потому что создание нового объекта LayoutParams с именем messageDimensions в createMessageTextView() метод вместо использования messageDimensions объект, который объявлен в класса.

Таким образом, использование:

messageDimensions = new LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
      messageDimensions.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 

в createMessageTextView() метод.

+0

Я не знаю, как я пропустил эту простую точку ... но спасибо в любом случае !! – Nike15

Смежные вопросы