Получить позиции X и Y на фрагменте, созданном панелью действий
Я должен получить координату X Y одного Fragment
и использовать его как текст
Но я не могу найти onTouchEvent
на Fragment
так что я не знаю, как это сделать.
Это мой код
package com.example.gshs14115.projectmiddle;
import android.app.ActionBar;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class FragmentsTabs extends AppCompatActivity{
FragmentTab1 t1;
FragmentTab2 t2;
@Override
protected void onCreate(Bundle savedInstanceState) {
t1 = new FragmentTab1();
t2 = new FragmentTab2();
super.onCreate(savedInstanceState);
final android.support.v7.app.ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(android.support.v7.app.ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayOptions(0, android.support.v7.app.ActionBar.DISPLAY_SHOW_TITLE);
TabListener<FragmentTab1> tab1TabListener = new TabListener<>(this,"tab1",FragmentTab1.class);
t1 = (FragmentTab1)tab1TabListener.mFragment;
TabListener<FragmentTab2> tab2TabListener = new TabListener<FragmentTab2>(this, "tab2", FragmentTab2.class);
t2 = (FragmentTab2)tab2TabListener.mFragment;
actionBar.addTab(actionBar.newTab().setText("Tab1").setTabListener(tab1TabListener));
actionBar.addTab(actionBar.newTab().setText("Tab2").setTabListener(tab2TabListener));
if(savedInstanceState != null)
{
actionBar.setSelectedNavigationItem(savedInstanceState.getInt("selectedTab",0));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("selectedTab",getActionBar().getSelectedNavigationIndex());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int)event.getX();
int y = (int)event.getY();
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
t1.log = "[X : "+x+"Y: "+y+"]";
break;
case MotionEvent.ACTION_MOVE:
x = (int)event.getX();
y = (int)event.getY();
t1.log = "[X : "+x+"Y : "+y+"]";
break;
case MotionEvent.ACTION_UP:
t1.log = "[X : Y: ]";
break;
}
t1.logText.setText(t1.log);
return super.onTouchEvent(event);
}
}
package com.example.gshs14115.projectmiddle;
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import org.w3c.dom.Text;
/**
* Created by Gshs14115 on 2015-11-14.
*/
public class FragmentTab1 extends android.support.v4.app.Fragment implements View.OnClickListener{
Button btn_graph_back;
TextView logText;
String log;
String result;
Calculator calc;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_graph,container,false);
logText = (TextView)v.findViewById(R.id.text_log);
btn_graph_back = (Button)v.findViewById(R.id.btn_graph_back);
btn_graph_back.setOnClickListener(this);
return v;
}
@Override
public void onClick(View v) {
if(v.getId()==R.id.btn_graph_back)
{
System.exit(0);
}
}
}
package com.example.gshs14115.projectmiddle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
/**
* Created by Gshs14115 on 2015-11-14.
*/
public class TabListener<T extends Fragment> implements android.support.v7.app.ActionBar.TabListener {
private final AppCompatActivity mActivity;
private final String mTag;
public final Class<T> mClass;
public Fragment mFragment;
public TabListener(AppCompatActivity activity,String tag,Class<T> clz)
{
mActivity = activity;
mTag = tag;
mClass = clz;
mFragment = mActivity.getSupportFragmentManager().findFragmentByTag(mTag);
if(mFragment !=null && !mFragment.isDetached())
{
android.support.v4.app.FragmentTransaction fragmentTransaction = mActivity.getSupportFragmentManager().beginTransaction();
fragmentTransaction.detach(mFragment);
fragmentTransaction.commit();
}
}
@Override
public void onTabSelected(android.support.v7.app.ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
if(mFragment == null ){
mFragment = Fragment.instantiate(mActivity,mClass.getName(),null);
ft.add(android.R.id.content,mFragment,mTag);
} else {
ft.attach(mFragment);
}
}
@Override
public void onTabUnselected(android.support.v7.app.ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
if(mFragment != null)
{
ft.detach(mFragment);
}
}
@Override
public void onTabReselected(android.support.v7.app.ActionBar.Tab tab, android.support.v4.app.FragmentTransaction ft) {
Toast.makeText(mActivity,"onTabReselected!",Toast.LENGTH_LONG).show();
}
}
Я хочу получить координату X Y FragmentsTabs.java
, но я не знаю, как получить доступ FragmentTab1
на этом объекте. Любая помощь?