У меня проблема с частями макета. Я добавляю кнопки программно, потому что хочу сделать что-то вроде хлебных крошек. У меня мое решение работает хорошо. Если я занимаюсь первым делом, я показываю одну кнопку. Если я перейду ко второму, я покажу две кнопки.
Это код:
У меня проблема с частями макета. Я добавляю кнопки программно, потому что хочу сделать что-то вроде хлебных крошек. У меня мое решение работает хорошо. Если я занимаюсь первым делом, я показываю одну кнопку. Если я перейду ко второму, я покажу две кнопки. Это код:
[code]public class TabsGenerator extends LinearLayout{
public TabsGenerator(Context context) { super(context); }
public View addNewLinearLayout(Context context, ArrayList descriptions) { final HorizontalScrollView horizontalView = new HorizontalScrollView(context); LinearLayout linearLayout = new LinearLayout(context); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); params.height = 60; linearLayout.setLayoutParams(params); horizontalView.setLayoutParams(params); postDelayed(new Runnable() { public void run() { horizontalView.fullScroll(HorizontalScrollView.FOCUS_RIGHT); } }, 100L); linearLayout.setGravity(Gravity.TOP); List components = getButtons(context, descriptions); for(View component : components) { linearLayout.addView(component); } horizontalView.addView(linearLayout);
return horizontalView; } public List getButtons(Context context, ArrayList descriptions) { List buttons = new ArrayList(); for(int i = 0; i < descriptions.size(); i++) { buttons.add(createButton(context,i, descriptions)); } return buttons; }
public View createButton(final Context context, final int i, final ArrayList descriptions){
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); params.leftMargin = -20; final Button button = new Button(context); button.setText(SecondActivity.descriptions.get(i)); button.setBackgroundDrawable(getResources().getDrawable(R.drawable.paseknawigacji)); button.setHorizontallyScrolling(true); button.setEllipsize(TruncateAt.END); button.setSingleLine(); button.setWidth(20); if(i==1) button.bringToFront(); button.setLayoutParams(params); button.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) { ActivityManager am = (ActivityManager) context. getSystemService(Activity.ACTIVITY_SERVICE); String packageName = am.getRunningTasks(1).get(0).topActivity.getPackageName(); String className = am.getRunningTasks(1).get(0).topActivity.getClassName(); final String StringClassname = packageName+"."+descriptions.get(i); Class c = null; if(StringClassname != null) { try { c = Class.forName(StringClassname ); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }