如何生成具有相同意图但具有另一个Extra的多个按钮

时间:2015-08-30 17:11:49

标签: android eclipse android-intent layout-inflater

我试图使用LayoutInflater在eclipse中生成多个视图。该按钮还有一个OnClickListener,它可以工作。意图开始,我给它一个额外的。

但我想要的是一个按钮让它自己的额外功能。说第一个按钮有额外的:数字1,第二个按钮有2,依此类推。目前al按钮获得相同的额外值,数字5.因为当我尝试在com.example.http WIZARD中获得额外的意图时,它总是说5

 String[] title = {
        "1",
        "2",
        "3",
        "4",
        "5"
    };

LayoutInflater layoutInflator = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll_content);
List<View> views = new ArrayList<View>();

for(int i=0; i<title.length; i++){
    View view = layoutInflator.inflate(R.layout.single_task, null);
    TextView textView = (TextView) view.findViewById(R.id.tvName);
    Button bStartWizard = (Button) view.findViewById(R.id.bStartWizard);

    textView.setText("Opdrachtnummer:" + title[i]);
    titleString = "Opdrachtnummer:" + title[i];

    bStartWizard.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent i = new Intent("com.example.http.WIZARD");
            i.putExtra("Number", titleString);
            startActivity(i);
        }
    });

    view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    views.add(view);
}

for(int i = 0; i<views.size(); i++){
    insertPoint.addView((View) views.get(i));
}

我希望有人可以帮助我!

1 个答案:

答案 0 :(得分:0)

按钮bStartWizard =(按钮)view.findViewById(R.id.bStartWizard);

我认为您在此处遇到问题,因为您要在xml上生成5个具有相同按钮ID的按钮,因此 onclicklistener 将尝试获取分配给该按钮的最后一个值这是5,尝试为每个按钮生成不同的ID。

在创建按钮时检查此代码,操纵值

Button bStartWizard = (Button) inflater.inflate(R.layout.play_game_option_button, layout, false);