gpt4 book ai didi

android - 如何将 View 添加到 ViewGroup 中的新 Activity

转载 作者:行者123 更新时间:2023-11-30 04:03:48 25 4
gpt4 key购买 nike

好的,所以我正在尝试将按钮/ View 添加到一个新 Activity ,而不是 View 组已经在其中的 Activity 。到目前为止,这是我的代码:

来源:

public class Main extends Activity {
Button btn, btn1;
LayoutInflater linflater;
LinearLayout l;
static int pos = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button ButtonBack = (Button) findViewById(R.id.dynamicoption);
ButtonBack.setOnClickListener(new View.OnClickListener(){

public void onClick(View v) {
// Perform action on click

startActivity(new Intent("com.nour.ImamKhomeini.DYNAMICOPTION"));


}

});

btn = (Button) findViewById(R.id.Button01);

l = (LinearLayout) findViewById(R.id.LinearLayout01);
linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View myView = linflater.inflate(R.layout.dynamicoption, l, true);
myView.setId(pos);
pos++;
}
});

btn = (Button) findViewById(R.id.Button01);
btn1 = (Button) findViewById(R.id.Button02);
l = (LinearLayout) findViewById(R.id.LinearLayout01);
linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
btn.setOnClickListener(new myListener());
btn1.setOnClickListener(new myListener1());
}

class myListener implements View.OnClickListener {
@Override
public void onClick(View v) {
View myView = linflater.inflate(R.layout.dynamicoption, null);
myView.setId(pos);
pos++;
l.addView(myView);
}
}

class myListener1 implements View.OnClickListener {
@Override
public void onClick(View v) {
if (pos != 0) {
pos--;
View myView = l.findViewById(pos);
l.removeView(myView);
}
}
}
}

这是我的 xml:

主要内容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="horizontal">

<Button android:id="@+id/Button01" android:background="@drawable/ic_launcher"
android:layout_height="45dip" android:layout_width="45dip"></Button>

<Button android:id="@+id/Button02" android:background="@drawable/ic_launcher"
android:layout_height="45dip" android:layout_width="45dip"></Button>

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"></LinearLayout>
</LinearLayout>

动态选项.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText android:text="@+id/EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
<Button android:text="@+id/Button01" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>

感谢任何帮助。谢谢。

最佳答案

我会做一些改变。看我如何创建 OnClickListener,您不需要创建新的子类。并注意我如何使用布局 inflater:

btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View myView = linflater.inflate(R.layout.dynamicoption, l, true);
myView.setId(pos);
pos++;
}
});

此外,当 XML 开始和结束标记之间没有任何内容时:

<EditText 
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/EditText01" ></EditText>

您可以使用 /> 简写并节省一些输入

<EditText 
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@+id/EditText01" />

您的 onCreate() 方法应该如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button ButtonBack = (Button) findViewById(R.id.dynamicoption);
ButtonBack.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
// Perform action on click
startActivity(new Intent("com.nour.ImamKhomeini.DYNAMICOPTION"));
}
});

l = (LinearLayout) findViewById(R.id.LinearLayout01);
linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View myView = linflater.inflate(R.layout.dynamicoption, l, true);
myView.setId(pos);
pos++;
}
});

btn1 = (Button) findViewById(R.id.Button02);
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (pos > 0) {
pos--;
l.removeView(l.findViewById(pos));
}
}
});
}

关于android - 如何将 View 添加到 ViewGroup 中的新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12079008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com