【发布时间】:2019-02-24 06:04:38
【问题描述】:
whilc(rs.next()){
data_big_layout = new LinearLayout(this);
data_big_params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
data_big_params.setMargins(0,15,0,0);
data_big_layout.setLayoutParams(data_big_params);
data_big_layout.setOrientation(LinearLayout.HORIZONTAL);
data_big_layout.setWeightSum(20);
data_big_layout.setBackgroundColor(Color.WHITE);
data_big_layout.setTag(rs.getInt(1));
data_big_layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getBaseContext(),"ID: "+data_big_layout.getTag(), Toast.LENGTH_LONG).show();
name.setText("Clicked ID: " + data_big_layout.getTag());
}
});
detail_data_layout = new LinearLayout(this);
lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT,8.0f);
detail_data_layout.setLayoutParams(lparams);
detail_data_layout.setOrientation(LinearLayout.VERTICAL);
detail_data_layout.setPadding(50,0,0,0);
lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
name = new TextView(this);
name.setLayoutParams(lparams);
name.setText("ID(get from rs.next): " + rs.getString(1));
name.setTextSize(24);
name.setTypeface(Typeface.DEFAULT_BOLD);
detail_data_layout.addView(name);
scroll_view_child.addView(data_big_layout); //scroll_view_child is a LinearLayout
}
大家好,我有一个问题无法解决。上面的代码会生成两个带有onclick函数的LinearLayout。但是,onclick 功能无法识别我被点击的是哪一个。
我在第一个和第二个LinearLayout中设置的两个标签应该是“1”和“2”,但是当我点击它时,所有LinearLayout都会显示“2”。我怎么解决这个问题?谢谢!
我修改了一些代码进行测试,rs.next肯定可以得到ID“1”和“2”,但是当我点击LinearLayout时(无论我点击了哪个布局),只有第二个会改变文本视图。 此外,无论我点击了哪个 LinearLayout,getTag() 都只显示“2”。
ps:一些textview和imageview代码被跳过
点击前:
点击后(无论我点击哪个布局):
【问题讨论】:
-
这段代码是做什么的? "rs.getInt(1)" 它总是得到相同的 int
-
此代码是一个存储来自数据库的数据的结果集。 rs.getInt(1) 表示获取结果集的第一个值。
标签: java android android-layout