为字符串列表创建不同的文本视图

时间:2019-02-19 17:47:49

标签: java android textview

我有一个类,我使用相机指向一个对象并获取它可以在该对象上看到的所有字符串。然后,我将列表传递给此意图,以便用户可以选择一个特定的字符串,然后将其用于发送到另一个活动。

但是,我想为每个字符串创建一个新的textview,然后在每个textview上放置一个OnClickListener,但是我不确定如何将OnClickListener放在一个我不知道会存在的textview上。根据列表创建。

public class SelectProductName extends AppCompatActivity {
    ArrayList<String> getString = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_select_product_name);
        getString = getIntent().getStringArrayListExtra("stringList");

        LinearLayout ll = findViewById(R.id.layout_select_product_name);
        for (int i = 0; i < getString.size();i++){
            TextView text = new TextView(this);
            text.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
            text.setText(getString.get(i));
            System.out.println(getString.get(i));
            ll.addView(text);
        }
    }
}

例如,getString是{“ Chicken”,“ Pie”}

我希望为每个字符串创建一个文本视图。

我不确定如何获取文本视图的名称以向其添加OnClickListener。

2 个答案:

答案 0 :(得分:0)

您可以像添加任何视图一样添加侦听器:

LinearLayout ll = findViewById(R.id.layout);
for (int i = 0; i < getString.size();i++){
    TextView text = new TextView(this);
    text.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
    text.setText(getString.get(i));
    System.out.println(getString.get(i));
    ll.addView(text);
    text.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // your code goes here
        }
    }); 
} 

答案 1 :(得分:0)

@Nullable