2011-02-06 2 views
0

Итак, я хочу сделать макет внутри файла Java, а затем я хотел бы назвать этот файл Java в своем основном действии. Как я могу это сделать?макет из Java android sdk

всякая помощь с благодарностью.

-Спасибо Christian

в OnCreate

ответ

0

LayoutSample.java

public class LayoutSampler extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new SampleLayoutDemo(this)); 
} 
} 

SampleLayoutDemo

class SampleLayoutDemo extends LinearLayout { 

public SampleLayoutDemo(Context context) { 
    super(context); 

    TextView view = new TextView(context); 
    view.setText("Sample"); 
    view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    addView(view); 
    setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
} 

} 

Создать класс, который проходит Layout и вызов метода() расположение в setContentView активности.

+0

Вы имеете в виду для SampleLayoutDemo для подкласса существующей ViewGroup, такой как LinearLayout и т. Д.? Потому что иначе ни супер (контекст), ни addView (view) не имеют смысла. –

+0

Хорошо, что имеет смысл, я попробую это. спасибо – Christian

0

вы говорите:

myView = new MyView(this); 
setContentView(myView); 
myView.requestFocus(); 

Если вы хотите, чтобы сделать свои собственные графики, то в Java файл, который вы пишете:

public class MyView extends View{ 

    public MyView(Context context){ 
     super(context); 

    } 

    @Override 
    public void onDraw(Canvas canvas){ 

    } 
} 

Вы также можете установить что класс MyView расширяет LinearLayout и т. д., а затем использует myView.addView() для создания вложенного макета.

+0

Благодарю вас, вы, ребята, очень помогли. все это то, что я искал. Благодарю за ваш ответ. – Christian

0

Я понимаю ваш вопрос как «Я хочу использовать LinearLayout или другую существующую ViewGroup в своей деятельности, а затем добавлять к ней представления без использования файлов XML». Это верно? Если вы хотите делать пользовательские представления, ChristianB уже изложил основы. Пользовательские макеты довольно сложны, и я рекомендую подклассы существующих групп представлений.

Так что, если мое предположение о вашем вопросе правильно, вы создаете вид в своей деятельности:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    LinearLayout layout = new LinearLayout (this); 
    TextView helloText = new TextView(this); 
    helloText.setText("Hello World"); 
    layout.addView(helloText); 
    setContentView(layout); 
} 

Вы можете обменять LinearLayout для любого другого ViewGroup, или полностью пропустить ViewGroup и добавить один «полноэкранный режим» Посмотреть.

+0

Да, это хороший ответ. Это имеет смысл, как хорошо. это именно то, что я ищу. Спасибо вам за помощь. – Christian

+0

Кристиан: Пожалуйста, не забывайте принимать ответ, если он отвечает на ваш вопрос. Также вы должны перенести любые ответы, которые вы найдете хорошо (не обязательно только принятый ответ). –

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