如何使短代码
问题描述:
这是我的第一个应用程序的代码的一部分。目前,我只添加了2个默认值gab的TextView,点击它们弹出6个值PopupMenu。通过单击PopupMenu中的任何值,TextView的值将更改为单击的值(不会更改其他未单击的TextView值)。我打算添加像100或甚至更多这种TextViews。每个人写作,复制和编辑ID等都太乱了。如何使短代码
这是如何缩短的? 值的数量不会改变(6),ViewId的数量(例如augli_mervieniba和bites_mervieniba)将是巨大的。
public void popup_mervieniba(final View view)
{
PopupMenu popupMenu = new PopupMenu(this, view);
MenuInflater menuInflater = popupMenu.getMenuInflater();
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
这部分是,如果第一TextView的被点击
if (view==findViewById(R.id.augli_mervieniba))
switch (item.getItemId()) {
case R.id.gab:
TextView t_gab = (TextView) findViewById(R.id.augli_mervieniba);
t_gab.setText(R.string.gab);
return true;
case R.id.iep:
TextView t_iep = (TextView) findViewById(R.id.augli_mervieniba);
t_iep.setText(R.string.iep);
return true;
case R.id.g:
TextView t_g = (TextView) findViewById(R.id.augli_mervieniba);
t_g.setText(R.string.g);
return true;
case R.id.kg:
TextView t_kg = (TextView) findViewById(R.id.augli_mervieniba);
t_kg.setText(R.string.kg);
return true;
case R.id.ml:
TextView t_ml = (TextView) findViewById(R.id.augli_mervieniba);
t_ml.setText(R.string.ml);
return true;
case R.id.l:
TextView t_l = (TextView) findViewById(R.id.augli_mervieniba);
t_l.setText(R.string.l);
return true;
}
如果第二TextView的被点击的代码
return false;
}
});
menuInflater.inflate(R.menu.popup_mervieniba, popupMenu.getMenu());
popupMenu.show();
}
答
else if (view==findViewById(R.id.bietes_mervieniba))
switch (item.getItemId()) {
case R.id.gab:
TextView t_gab = (TextView) findViewById(R.id.bietes_mervieniba);
t_gab.setText(R.string.gab);
return true;
case R.id.iep:
TextView t_iep = (TextView) findViewById(R.id.bietes_mervieniba);
t_iep.setText(R.string.iep);
return true;
case R.id.g:
TextView t_g = (TextView) findViewById(R.id.bietes_mervieniba);
t_g.setText(R.string.g);
return true;
case R.id.kg:
TextView t_kg = (TextView) findViewById(R.id.bietes_mervieniba);
t_kg.setText(R.string.kg);
return true;
case R.id.ml:
TextView t_ml = (TextView) findViewById(R.id.bietes_mervieniba);
t_ml.setText(R.string.ml);
return true;
case R.id.l:
TextView t_l = (TextView) findViewById(R.id.bietes_mervieniba);
t_l.setText(R.string.l);
return true;
}
端这部分是针对
这样做;
ActivityClass
{ private TextView tv1, tv2.......
onCreate()
{
tv1 = (TextView) findViewById();
tv2 = (TextView) findViewById();
}
switch()
{
case R.id.gap:
tv1.setText();
return;
………………
}
+0
尽我所知,这不会改变线条的数量,只是缩短它们。 – NorKais
+0
线条越短意味着代码越短越整齐。这不是你想要的吗? – Want2bExpert
将所有视图实例化一个地方,只是致电然后在开关 – Want2bExpert
什么是'R.id.bietes_mervieniba'和'R.id.augli_mervieniba'? – iTurki
他们是TextView的编号 – NorKais