嗯,我想要处理的"ClickListeners“(我想要处理的) "TabItems”不幸不起作用。
TabItem TabItem1;
View.OnClickListener Klick = new View.OnClickListener() {
public void onClick(View v) {
switch(v.getId()) {
case R.id.guiTabItem1:
Toast.makeText(MainActivity.this,"Lol wtf asdsadfdfs", Toast.LENGTH_LONG);
break;
case R.id.guiTabItem2:
// test
break;
}
}
};该应用程序加载,但按下标签没有任何影响。我还尝试用"setOnClickListener“将单击事件分配给选项卡。这会导致坠机。
tabItem1.setOnClickListener(Klick);以下的尝试也没有奏效:
tabItem1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"Lol", Toast.LENGTH_LONG);
}
});这是整个代码片段。提前感谢!
public class MainActivity extends Activity {
ListView Liste;
MediaPlayer Player;
TabLayout guiTopNav;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabItem TabItem1 = findViewById(R.id.guiTabItem1);
View.OnClickListener Klick = new View.OnClickListener() {
public void onClick(View v) {
switch(v.getId()) {
case R.id.guiTabItem1:
Toast.makeText(MainActivity.this,"Lol wtf asdsadfdfs", Toast.LENGTH_LONG);
break;
case R.id.guiTabItem2:
// it was the second button
break;
}
}
};
tabAndreas.setOnClickListener(Klick);
}发布于 2019-04-21 10:38:58
所以我想出了一个解决办法。显然,setOnClickListener()与TabItems或TabLayouts不兼容。相反,使用以下解决方案为选项卡创建单击函数。当然,在您的设计器中,三个TabItems必须分类在一个TabLayout下面。
// #################################################################### GUI
TabLayout guiTabs;
guiTabs = findViewById(R.id.guiTopNav);
guiTabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch(tab.getPosition()) {
case 0: Toast.makeText(MainActivity.this, "Tab 1", Toast.LENGTH_LONG).show();
break;
case 1: Toast.makeText(MainActivity.this, "Tab 2", Toast.LENGTH_LONG).show();
break;
case 2: Toast.makeText(MainActivity.this, "Tab 3", Toast.LENGTH_LONG).show();
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});发布于 2019-04-20 22:36:22
你已经从视图And中得到tabItem1了吗?
/*Example you need to do it with the tabitem*/
button = (Button) findViewById(R.id.but);发布于 2019-04-21 02:20:25
在声明TabItem对象之后,您必须通过使用findViewById method.This方法将TabItem视图分配给它,通过它的id将找到正确的视图并返回视图。
findViewById(R.id.tabitemview);TabItem tabItem1 =
https://stackoverflow.com/questions/55777767
复制相似问题