如何使用Android Studio动态创建项目数列表
我使用以下示例创建了列表: 我想有一个即将上映的电影列表,所以我需要一个动态项目数的列表。我不明白,也不知道该怎么做 这是一个项目列表的代码:如何使用Android Studio动态创建项目数列表,android,listview,Android,Listview,我使用以下示例创建了列表: 我想有一个即将上映的电影列表,所以我需要一个动态项目数的列表。我不明白,也不知道该怎么做 这是一个项目列表的代码: public class FragmentOne extends Fragment { TextView textView; TextView textView2; ImageView imageView; public static FragmentOne newInstance() { Fragme
public class FragmentOne extends Fragment {
TextView textView;
TextView textView2;
ImageView imageView;
public static FragmentOne newInstance() {
FragmentOne fragment = new FragmentOne();
return fragment;
}
public class MovieTask extends AsyncTask<Void, Void, MovieDb>{
@Override
protected MovieDb doInBackground(Void... voids) {
TmdbMovies movies = new TmdbApi("my_api_key").getMovies();
MovieDb movie = movies.getMovie(5335, "en");
return movie;
}
@Override
protected void onPostExecute(MovieDb movieDb) {
textView.setText(movieDb.getOriginalTitle());
textView2.setText(movieDb.getReleaseDate());
Glide.with(imageView).load("https://image.tmdb.org/t/p/w500" + movieDb.getPosterPath()).into(imageView);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
MovieTask mt = new MovieTask();
mt.execute();
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View returnView = inflater.inflate(R.layout.fragment_one, container, false);
textView = (TextView) returnView.findViewById(R.id.text);
textView2 = (TextView) returnView.findViewById(R.id.text2);
imageView = (ImageView) returnView.findViewById(R.id.list_icon);
return returnView;
}
}
公共类FragmentOne扩展了Fragment{
文本视图文本视图;
文本视图文本视图2;
图像视图图像视图;
公共静态碎片一个新实例(){
FragmentOne片段=新FragmentOne();
返回片段;
}
公共类MovieTask扩展了异步任务{
@凌驾
受保护电影数据库后台(无效…无效){
TmdbMovies movies=newtmdbapi(“my_api_key”).getMovies();
MovieDb movie=movies.getMovie(5335,“en”);
回归电影;
}
@凌驾
受保护的void onPostExecute(MovieDb MovieDb){
textView.setText(movieDb.getoriginaltle());
textView2.setText(movieDb.getReleaseDate());
使用(图像视图)滑动。加载(“https://image.tmdb.org/t/p/w500“+movieDb.getPosterPath()).into(imageView);
}
}
@凌驾
创建时的公共void(Bundle savedInstanceState){
MovieTask mt=新的MovieTask();
mt.execute();
super.onCreate(savedInstanceState);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图返回视图=充气机。充气(R.layout.fragment\u one,容器,错误);
textView=(textView)returnView.findViewById(R.id.text);
textView2=(TextView)returnView.findViewById(R.id.text2);
imageView=(imageView)returnView.findViewById(R.id.list_图标);
返回视图;
}
}
以及该类的xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="72dp"
tools:context=".FragmentOne">
<ImageView
android:id="@+id/list_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_margin="16dp" />
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_toRightOf="@+id/list_icon"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true">
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingRight="16dp" />
<TextView
android:id="@+id/text2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingRight="16dp" />
</LinearLayout>
</RelativeLayout>
我个人建议您使用Recyclerview和cardview来完成这项工作。如果您不熟悉Recyclerview,则需要为其创建适配器类 请查看此链接-
是否有可能对我的列表执行我想要的操作?我有5个项目,我想有5个项目的列表,但我可以有例如7个项目,我不想改变我的列表大小的按钮,它必须自动做。这甚至是可能的?是的,这绝对是可能的。希望你检查了我上面提到的链接。您需要创建一个只有一个cardview的布局。只需在该卡片视图中添加文本视图或任何您想要的内容。现在,您的recyclerview适配器将根据要存储和作为阵列提供的数据数量,在recyclerview布局上显示多个CardView。好的,我试试这个。还有一个问题。这会在碎片内部起作用吗?是的。你将不得不做一些改变,你很好去。只需搜索有关recyclerview和CardView的更多信息,您确定!你可以问,没有清单。没有适配器。你发布了不相关的代码。