Java 检测taBHost中已选定选项卡上的OnClick事件,以执行类似触发器性质的操作
下面我有三个选项卡,每个选项卡将带您参加一项活动Java 检测taBHost中已选定选项卡上的OnClick事件,以执行类似触发器性质的操作,java,android,Java,Android,下面我有三个选项卡,每个选项卡将带您参加一项活动 点击评级->主要活动类 点击Price->PriceDescriptionActivity.class 单击距离距离->距离描述活动。类 我怎样才能做到:: 点击评级->主要活动类 第二次点击评级-->PriceDescriptionActivity.class 第三次点击评级——>MainActivity.class AndroidTabRestaurantDescListView.java public class Android
- 点击
->评级
主要活动类
- 点击
->Price
PriceDescriptionActivity.class
- 单击距离
->距离
距离描述活动。类
我怎样才能做到::
- 点击
->评级
主要活动类
- 第二次点击
评级-->
PriceDescriptionActivity.class
- 第三次点击
——>评级
MainActivity.class
AndroidTabRestaurantDescListView.java
public class AndroidTabRestaurantDescListView extends TabActivity {
// TabSpec Names
private static final String INBOX_SPEC = "Rating";
private static final String OUTBOX_SPEC = "Price";
private static final String PROFILE_SPEC = "Distance";
Button Photos;
Button Filter;
Button Search;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Photos=(Button) findViewById(R.id.PhotoButton);
Filter=(Button) findViewById(R.id.FilterButton);
Search=(Button) findViewById(R.id.SearchBottomBarID);
TabHost tabHost = getTabHost();
// Inbox Tab
TabSpec inboxSpec = tabHost.newTabSpec(INBOX_SPEC);
Intent inboxIntent = new Intent(this, MainActivity.class);
inboxSpec.setIndicator(INBOX_SPEC);
// Tab Content
inboxSpec.setContent(inboxIntent);
// Outbox Tab
TabSpec PriceSpec = tabHost.newTabSpec(OUTBOX_SPEC);
Intent PriceIntent = new Intent(this, PriceDescriptionActivity.class);
PriceSpec .setIndicator(OUTBOX_SPEC);
PriceSpec.setContent(PriceIntent);
// Profile Tab
TabSpec DistanceSpec = tabHost.newTabSpec(PROFILE_SPEC);
Intent DistanceIntent = new Intent(this, DistanceDiscriptionActivity.class);
DistanceSpec .setIndicator(PROFILE_SPEC);
DistanceSpec.setContent(DistanceIntent);
// Adding all TabSpec to TabHost
tabHost.addTab(inboxSpec);
tabHost.addTab(PriceSpec);
tabHost.addTab(DistanceSpec);
//Set the current value tab to default first tab
tabHost.setCurrentTab(0);
}
}
说我不想使用片段或自定义按钮。。。。我如何在这里实现这一点 可能吗
如果可能------我需要做哪些更改?您可以使用此代码检测是否第二次选择了相同的选项卡:
// Add this to the class
private static int count=0;
// Adding listener for Getting Same Tab selected
int numberOfTabs = mTabHost.getTabWidget().getChildCount();
for (int i = 0; i < numberOfTabs; i++) {
mTabHost.getTabWidget().getChildAt(i).setTag(i + "");
mTabHost.getTabWidget().getChildAt(i).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (MotionEvent.ACTION_DOWN == event.getAction()) {
int previousTab = mTabHost.getCurrentTab();
int currentTab = Integer.parseInt((String) v.getTag());
if (previousTab == currentTab) {
if (currentTab == 0) {
count++;
if(count == 1)
mTabHost.setCurrentTab(1);
else {
mTabHost.setCurrentTab(0);
count = 0;
}
}
return true;
} else
count =0;
return true;
}
}
return false;
}
});
}
//将其添加到类中
私有静态整数计数=0;
//添加侦听器以选择相同的选项卡
int numberOfTabs=mTabHost.getTabWidget().getChildCount();
对于(int i=0;i
您需要使用计数器来计算选择选项卡的次数。然后执行相应的操作。我已经为第一个选项卡添加了解决方案,其余的您可以根据需要执行[+1用于编辑]。。。。还有一个问题::它在选项卡之间导航对吗。。。。。就像第一个和第二个。。。。我希望在各种活动之间导航。。。。MainActivity.class&。。。PriceDescriptionActivity.class…使用onetab本身。。。你能分析我的问题吗……是的,我明白你想在这里做什么。但是标准应该是只在选择选项卡时切换到特定选项卡&而不是在选择同一选项卡时从一个选项卡导航到另一个选项卡。我认为最新的代码将帮助您动态切换选项卡