Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 18 июн 2013, 01:27
ну? и что, вывелось на экран ровно то, что и заказывалось в xml-е..
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Напишите часть кода, если он выполниться успешно тогда и остальные команды добавите.NAZI
Код: Выделить всё
TextView tv11 = new TextView(this);
tv11.setText("Это новая запись.");
TableRow tableRow3 =(TableRow)findViewById(R.id.tableRow3);
int RGB1 = android.graphics.Color.rgb(223, 223, 223);
tableRow3.setBackgroundColor(RGB1);
tableRow3.addView(tv11)
Код: Выделить всё
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Есть основания полагать, что это неправда.Обратите внимание, что для двух объектов View я использовал один объект LayoutParams - lpView. И если я теперь буду менять свойства
этого объекта, меняться будут оба View.
Код: Выделить всё
Button btn = new Button (this);
btn.setText("Button1");
linLayout.addView(btn, lpView);
lpView.width = LayoutParams.MATCH_PARENT;
Button btn2 = new Button (this);
btn2.setText("Button2");
btn2.setLayoutParams(lpView);
linLayout.addView(btn2);
lpView.width = 200;
Button btn3 = new Button (this);
btn3.setText("Button3");
linLayout.addView(btn3, lpView);
btn.requestLayout();
btn2.requestLayout();
btn3.requestLayout();
Да, некорректно у меня написано. Спасибо!Phashik писал(а):Есть основания полагать, что это неправда.Обратите внимание, что для двух объектов View я использовал один объект LayoutParams - lpView. И если я теперь буду менять свойства
этого объекта, меняться будут оба View.
Господа!rezak90 писал(а):button1.setId(12345);
в onClicke:
case 12345: и т.д.
Код: Выделить всё
public static final class id {
public static final int action_bar=0x7f07001c;
public static final int action_bar_activity_content=0x7f070014;
public static final int action_bar_container=0x7f07001b;........
Код: Выделить всё
LayoutParams linLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
Код: Выделить всё
eclipse Description Resource Path Location Type Call requires API level 11 (current min is 10): new android.app.ActionBar.LayoutParams MainActivity.java /P0161_DynamicLayout/src/com/example/dynamiclayout line 18 Android Lint Problem
new android.app.ActionBar.LayoutParams MainActivity.java Попробуй заменить ActionBar.LayoutParams на что-нибудь другое, например, LinearLayout.LayoutParamspal2 писал(а):Да да, все правильно! Не знал как написать точнее.
Но если в уроке написано 2.3.3 (API10),то должно работать? Но у меня не работает с такой ошибкой, как указано выше.
Подскажите пожалуйста....
Спасибо
Код: Выделить всё
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity implements OnClickListener{
Button button1;
Button button2;
Button button3;
Button button4;
TextView editText1;
ImageView imageView1;
int bal=0;
LinearLayout ll1;
int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(this);
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(this);
button3 = (Button) findViewById(R.id.button3);
button3.setOnClickListener(this);
button4 = (Button) findViewById(R.id.button4);
button4.setOnClickListener(this);
editText1 = (TextView) findViewById(R.id.editText1);
imageView1 = (ImageView) findViewById(R.id.imageView1);
ll1 = (LinearLayout) findViewById(R.id.ll1);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
ll1.removeAllViews();
break;
case R.id.button2:
ll1.removeAllViews();
break;
case R.id.button3:
ll1.removeAllViews();
bal=bal+1;
break;
case R.id.button4:
ll1.removeAllViews();
break;
}
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll1.setOrientation(LinearLayout.VERTICAL);
ImageView imageView1 = new ImageView(this);
imageView1.setImageResource(R.drawable.kv02);
imageView1.setMaxHeight(220);
imageView1.setMaxWidth(240);
ll1.addView(imageView1);
TextView textView1 = new TextView(this);
textView1.setHeight(26);
textView1.setText("ххххх?");
ll1.addView(textView1, lp2);
LinearLayout ll2 = new LinearLayout(this);
Button button1 = new Button(this);
button1.setText("1");
ll2.addView(button1);
Button button2 = new Button(this);
button2.setText("2");
ll2.addView(button2);
LinearLayout ll3 = new LinearLayout(this);
Button button3 = new Button(this);
button3.setText("3");
ll3.addView(button3);
Button button4 = new Button(this);
button4.setText("4");
ll3.addView(button4);
ll1.addView(ll2, lp2);
ll1.addView(ll3, lp2);
}
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
эм... тут switch же используется для выбора действия в зависимости от того, какой элемент нажалиFoenix писал(а):какой еще цикл? там же SWITCH Организовывается! в уроках же есть это.
Да, можно просто поменять картинку в ImageView, текст на кнопках-ответах и в самом вопросе.Foenix писал(а):что значит "новый экран"? наверняка просто вьюшка, демонстрирующая вопрос. Зачем новый экран, если можно просто поменять содержимое соответствующей вьюшки на другое?
Используй скрины, чтоб показать что тебе действительно нужно.