Android 如何根据JSON文件的内容动态地将TextView添加到布局中?
我是android开发新手。我有一个包含许多对象的JSON文件,如何为JSON文件中的每个对象向ScrollView添加新的TextView?每个TextView将存储JSON对象中包含的数据。目前我知道的向布局添加视图的唯一方法是在活动布局XML文件中定义视图,但这不允许我自动生成视图,我必须手动创建视图并手动定义它们 谢谢Android 如何根据JSON文件的内容动态地将TextView添加到布局中?,android,json,android-layout,kotlin,Android,Json,Android Layout,Kotlin,我是android开发新手。我有一个包含许多对象的JSON文件,如何为JSON文件中的每个对象向ScrollView添加新的TextView?每个TextView将存储JSON对象中包含的数据。目前我知道的向布局添加视图的唯一方法是在活动布局XML文件中定义视图,但这不允许我自动生成视图,我必须手动创建视图并手动定义它们 谢谢 编辑:链接副本没有任何答案,但此处提供了答案。@Lewiky,以下是用于将TextView动态添加到ScrollView的.java文件代码。您可以根据json对象的长度
编辑:链接副本没有任何答案,但此处提供了答案。@Lewiky,以下是用于将TextView动态添加到ScrollView的.java文件代码。您可以根据json对象的长度替换循环。同时发布xml布局文件代码以供参考
public class Scrollview extends AppCompatActivity {
ScrollView scrollview;
LinearLayout linearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scrollview);
scrollview = (ScrollView) findViewById(R.id.scrollView);
linearLayout=(LinearLayout)findViewById(R.id.scrllinear);
TextView textView;
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
for (int i = 0; i < 5; i++) {
textView = new TextView(this);
textView.setText("I=" + i);
linearLayout.addView(textView, lp);
}
}
}
公共类Scrollview扩展了AppCompative活动{
滚动视图滚动视图;
线性布局线性布局;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u滚动视图);
scrollview=(scrollview)findViewById(R.id.scrollview);
linearLayout=(linearLayout)findViewById(R.id.scrllinear);
文本视图文本视图;
LinearLayout.LayoutParams lp=新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容);
对于(int i=0;i<5;i++){
textView=新的textView(此);
textView.setText(“I=“+I”);
linearLayout.addView(文本视图,lp);
}
}
}
XML代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/scrllinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
</RelativeLayout>
希望这有帮助,
快乐编码:) @Lewiky,下面是用于将TextView动态添加到ScrollView的.java文件代码。您可以根据json对象的长度替换循环。同时发布xml布局文件代码以供参考
public class Scrollview extends AppCompatActivity {
ScrollView scrollview;
LinearLayout linearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scrollview);
scrollview = (ScrollView) findViewById(R.id.scrollView);
linearLayout=(LinearLayout)findViewById(R.id.scrllinear);
TextView textView;
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
for (int i = 0; i < 5; i++) {
textView = new TextView(this);
textView.setText("I=" + i);
linearLayout.addView(textView, lp);
}
}
}
公共类Scrollview扩展了AppCompative活动{
滚动视图滚动视图;
线性布局线性布局;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u滚动视图);
scrollview=(scrollview)findViewById(R.id.scrollview);
linearLayout=(linearLayout)findViewById(R.id.scrllinear);
文本视图文本视图;
LinearLayout.LayoutParams lp=新的LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容);
对于(int i=0;i<5;i++){
textView=新的textView(此);
textView.setText(“I=“+I”);
linearLayout.addView(文本视图,lp);
}
}
}
XML代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/scrllinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
</RelativeLayout>
希望这有帮助,
快乐编码:) 我假设您有一个
activity\u layout.xml
和SomeActivity
,它们都与setContentView(R.layout.activity\u layout)方法有关系,在重写方法onCreate
中调用,如下所示:
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_layout)
}
现在,您需要查找一些视图组
,例如:线性布局
,列表视图
(更好)。使用方法findviewbyd(R.id.some\u group\u view)
并使用同一类强制转换
使用实例变量(假设您使用ListView
)映射Json对象,在迭代器对象中提取所需信息,并在ArrayAdapter
中传递数据
有关make应用程序,请参阅Android开发者指南。他们有一个非常有用的文档
我假设您有一个
activity\u layout.xml
和SomeActivity
,它们都与setContentView(R.layout.activity\u layout)方法有关系,在重写方法onCreate
中调用,如下:
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_layout)
}
现在,您需要查找一些视图组
,例如:线性布局
,列表视图
(更好)。使用方法findviewbyd(R.id.some\u group\u view)
并使用同一类强制转换
使用实例变量(假设您使用ListView
)映射Json对象,在迭代器对象中提取所需信息,并在ArrayAdapter
中传递数据
有关make应用程序,请参阅Android开发者指南。他们有一个非常有用的文档
尝试使用
列表视图
或回收视图
可能的重复项,您必须使用xml来定义视图。您可以做的一件事是根据json中对象的数量添加视图(将它们的可见性设置为“不可见”或“消失”),并为每个对象检查有效性,然后使该视图可见尝试使用listView
或RecyclerView
可能的重复项您必须使用xml来定义视图。您可以做的一件事是根据json中对象的数量添加视图(将它们的可见性设置为不可见或消失),并为每个对象检查有效性,然后使该视图可见