Итак, я хочу сделать макет внутри файла Java, а затем я хотел бы назвать этот файл Java в своем основном действии. Как я могу это сделать?макет из Java android sdk
всякая помощь с благодарностью.
-Спасибо Christian
в OnCreateИтак, я хочу сделать макет внутри файла Java, а затем я хотел бы назвать этот файл Java в своем основном действии. Как я могу это сделать?макет из Java android sdk
всякая помощь с благодарностью.
-Спасибо Christian
в OnCreateLayoutSample.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 активности.
вы говорите:
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() для создания вложенного макета.
Благодарю вас, вы, ребята, очень помогли. все это то, что я искал. Благодарю за ваш ответ. – Christian
Я понимаю ваш вопрос как «Я хочу использовать 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 и добавить один «полноэкранный режим» Посмотреть.
Да, это хороший ответ. Это имеет смысл, как хорошо. это именно то, что я ищу. Спасибо вам за помощь. – Christian
Кристиан: Пожалуйста, не забывайте принимать ответ, если он отвечает на ваш вопрос. Также вы должны перенести любые ответы, которые вы найдете хорошо (не обязательно только принятый ответ). –
Вы имеете в виду для SampleLayoutDemo для подкласса существующей ViewGroup, такой как LinearLayout и т. Д.? Потому что иначе ни супер (контекст), ни addView (view) не имеют смысла. –
Хорошо, что имеет смысл, я попробую это. спасибо – Christian