Bringen Sie den vorderen Teil des Layouts in AndroidAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Bringen Sie den vorderen Teil des Layouts in Android

Post by Anonymous »

Ich habe ein Problem mit Teilen des Layouts. Ich füge Schaltflächen programmgesteuert hinzu, weil ich so etwas wie Breadcrump machen möchte. Ich meine Lösung funktioniert gut. Wenn ich mich in der ersten Aktivität befinde, zeige ich eine Schaltfläche. Wenn ich zur zweiten gehe, werden zwei Schaltflächen angezeigt.
Das ist Code:

Code: Select all

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();
}
}

Intent intent = new Intent();
intent.setClassName(context,StringClassname);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
if(!(StringClassname.contains(className))){
for(int j = 0; j

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post