【发布时间】:2022-02-02 09:45:51
【问题描述】:
我想在我的线性布局中显示三个单独的文本视图列表。我知道这可以从 XML 文件本身完成,但我想动态生成这些文本视图。
XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id = "@+id/ll1">
</LinearLayout>
Java 文件:
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RegistrationActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle saved){
LinearLayout ll = findViewById(R.id.ll1);
super.onCreate(saved);
setContentView(R.layout.activity_reg);
List<String> names = new ArrayList<>(Arrays.asList("Negotiation","Pyschology","Joke"));
for (int i = 0; i<3;++i){
TextView dynamic = new TextView(this);
dynamic.setText(names.get(i));
dynamic.setTextSize(14);
dynamic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(RegistrationActivity.this, MainActivity.class));
}
});
ll.addView(dynamic);
}
}
}
结果是一个空白页面,我想要的是三个可点击的文本视图作为结果。我哪里做错了?
【问题讨论】:
-
仍然是一种非常可怕的方法,为什么不使用 recyclerview 呢?
-
我没有看到任何
yourLinearLayout.addView(yourTextView)以便将生成的文本视图添加到线性布局。 -
我会推荐你使用 RecyclerView 但如果你想通过这种方法添加这一行 yourLinearLayout.addView(dynamic)` `
-
@a_local_nobody 太复杂了。
标签: java android android-studio