У меня есть две точки зрения, и я хочу, чтобы получить доступ к данным, хранящимся в переменной View A и передать его в окне просмотра B.андроид - Использование переменной из одного вида в другой файл
Как бы мне это сделать?
Спасибо,
У меня есть две точки зрения, и я хочу, чтобы получить доступ к данным, хранящимся в переменной View A и передать его в окне просмотра B.андроид - Использование переменной из одного вида в другой файл
Как бы мне это сделать?
Спасибо,
Там нет никакого волшебного способа,
ViewA va = ...;
ViewB vb = ...;
...
vb.setData(va.getData());
Вы должны установить данные из ViewA
в ViewB
. Кроме того, вы можете использовать шаблон слушателя, чтобы ViewA
уведомить ViewB
при изменении данных,
interface ViewADataListener {
void onDataChanged(Data d);
}
class ViewB implements ViewADataListener { ... }
ViewA va = ...;
ViewB vb = ...;
...
va.setDataChangedListener(vb);
Тогда где-то в реализации ViewA
«s он должен вызвать метод слушателя на ViewB
.
Использование интерфейса.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ViewA viewA = new ViewA();
ViewB viewB = new ViewB();
viewB.setViewA(viewA);
}
class ViewA {
private Object mData;
public Object getData() {
return mData;
}
}
class ViewB {
ViewA mViewA;
public void setViewA(ViewA viewA) {
mViewA = viewA;
}
private void test() {
if (mViewA != null) {
Object obj = mViewA.getData();
}
}
}
Make View A в качестве переменной в окне просмотра B.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ViewA viewA = new ViewA();
ViewB viewB = new ViewB();
viewB.setCallBack(viewA.getCallBack());
}
interface DataCallBack {
Object getData();
}
class ViewA {
private Object mData;
private DataCallBack mCallBack = new DataCallBack() {
@Override
public Object getData() {
return mData;
}
};
public DataCallBack getCallBack() {
return mCallBack;
}
}
class ViewB {
DataCallBack mDataCallBack;
public void setCallBack(DataCallBack callBack) {
mDataCallBack = callBack;
}
private void test() {
if (mDataCallBack != null) {
Object obj = mDataCallBack.getData();
}
}
}
3./4./5 ....
Просто FYR. Для существует тысячи способов решить вашу проблему.
не могли бы вы подробнее? Ваш код, ваш шаблон? – vtproduction
В представлении AI есть переменная, содержащая точки, и я анимация этого пути из тех точек в представлении B. Но мне нужно получить доступ к переменной в представлении A, которая имеет точки для анимации в представлении B. – Eddev
, какой вид вы используете для A и B ?? –