Доступ до перегляду у макеті фрагментів поза класом

Я намагаюся отримати доступ до TextView із зовнішнього класу. TextView є частиною макета , роздутого фрагментом . Як досягти цього? Я не можу посилатися на фрагмент, оскільки у мене є 3 інші фрагменти з різними макетами.

EDIT:

У мене є цей фрагмент, на якому я хотів би отримати доступ до totalTxt:

public class FragmentCart extends Fragment {
    private TextView totalTxt;
    private ListView itemList;

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_cart, container, false);
        itemList = (ListView)view.findViewById(R.id.itemList);
        itemList.setAdapter(MainActivity.cart);
        return view;
    }

і я маю цей клас

    public class someClass extends BaseAdapter {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }
0
це означає, що ви хочете оновити значення textview totalTxt з baseAdapter?
додано Автор Basil jose, джерело
це означає, що ви хочете оновити значення textview totalTxt з baseAdapter?
додано Автор Basil jose, джерело
це означає, що ви хочете оновити значення textview totalTxt з baseAdapter?
додано Автор Basil jose, джерело
це означає, що ви хочете оновити значення textview totalTxt з baseAdapter?
додано Автор Basil jose, джерело
Чи можете ви пояснити запитання розширено або розмістити свій код
додано Автор Revathi Manoharan, джерело
Чи можете ви пояснити запитання розширено або розмістити свій код
додано Автор Revathi Manoharan, джерело
три фрагмента в одній діяльності?
додано Автор Revathi Manoharan, джерело
три фрагмента в одній діяльності?
додано Автор Revathi Manoharan, джерело
три фрагмента в одній діяльності?
додано Автор Revathi Manoharan, джерело
три фрагмента в одній діяльності?
додано Автор Revathi Manoharan, джерело
ви використовуєте textview для безлічі обрядів рядків?
додано Автор Revathi Manoharan, джерело
ви використовуєте textview для безлічі обрядів рядків?
додано Автор Revathi Manoharan, джерело
ви використовуєте textview для безлічі обрядів рядків?
додано Автор Revathi Manoharan, джерело
ви використовуєте textview для безлічі обрядів рядків?
додано Автор Revathi Manoharan, джерело
Чи можете ви пояснити запитання розширено або розмістити свій код
додано Автор Revathi Manoharan, джерело
ОК, де ви використовуєте рядок з фрагмента? я маю на увазі використовувати рядок від одного фрагмента до іншого фрагмента?
додано Автор Revathi Manoharan, джерело
ОК, де ви використовуєте рядок з фрагмента? я маю на увазі використовувати рядок від одного фрагмента до іншого фрагмента?
додано Автор Revathi Manoharan, джерело
Я оновлював свою публікацію своєю проблемою
додано Автор Prince Princes, джерело
Я оновлював свою публікацію своєю проблемою
додано Автор Prince Princes, джерело
Я оновлював свою публікацію своєю проблемою
додано Автор Prince Princes, джерело
да три фрагмента в тій же діяльності
додано Автор Prince Princes, джерело
да три фрагмента в тій же діяльності
додано Автор Prince Princes, джерело
да три фрагмента в тій же діяльності
додано Автор Prince Princes, джерело
Я оновлював свою публікацію своєю проблемою
додано Автор Prince Princes, джерело

8 Відповіді

Надаючи простий зворотний виклик.

Для цього треба написати простий інтерфейс у вашому адаптері

public interface OnDataChangeListener{
    public void onDataChanged(String value);
}

та додайте сетер для слухача (також у адаптері)

OnDataChangeListener mOnDataChangeListener;
public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener){
    mOnDataChangeListener = onDataChangeListener;
}

тепер додайте додатковий код до наступного блоку в baseadapter

private void conditionOfValuechanged() {
    ...
    if(mOnDataChangeListener != null){
        mOnDataChangeListener.onDataChanged(data.size());
    }
}

в активності вам тоді потрібно реєструвати слухача

protected void onCreate(Bundle savedInstanceState) {
    ...
    adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
        public void onDataChanged(String value){
            //do whatever here
             txtTotal.setText(value);
        }
    });
}
0
додано
ви отримали значення в адаптері, скажіть "hallo" & від самого адаптера вам потрібно отримати доступ до textview [всередині фрагмента] і встановити значення
додано Автор Basil jose, джерело
Вибач за те ! але намагатиметься допомогти вам, чи можете ви пояснити трохи більше про потік
додано Автор Basil jose, джерело
Ви втратили мене, вибачте. Я отримую значення від адаптера, а потім встановлюю це значення на txtTotal
додано Автор Prince Princes, джерело

Надаючи простий зворотний виклик.

Для цього треба написати простий інтерфейс у вашому адаптері

public interface OnDataChangeListener{
    public void onDataChanged(String value);
}

та додайте сетер для слухача (також у адаптері)

OnDataChangeListener mOnDataChangeListener;
public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener){
    mOnDataChangeListener = onDataChangeListener;
}

тепер додайте додатковий код до наступного блоку в baseadapter

private void conditionOfValuechanged() {
    ...
    if(mOnDataChangeListener != null){
        mOnDataChangeListener.onDataChanged(data.size());
    }
}

в активності вам тоді потрібно реєструвати слухача

protected void onCreate(Bundle savedInstanceState) {
    ...
    adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
        public void onDataChanged(String value){
            //do whatever here
             txtTotal.setText(value);
        }
    });
}
0
додано
ви отримали значення в адаптері, скажіть "hallo" & від самого адаптера вам потрібно отримати доступ до textview [всередині фрагмента] і встановити значення
додано Автор Basil jose, джерело
Вибач за те ! але намагатиметься допомогти вам, чи можете ви пояснити трохи більше про потік
додано Автор Basil jose, джерело
Ви втратили мене, вибачте. Я отримую значення від адаптера, а потім встановлюю це значення на txtTotal
додано Автор Prince Princes, джерело

Надаючи простий зворотний виклик.

Для цього треба написати простий інтерфейс у вашому адаптері

public interface OnDataChangeListener{
    public void onDataChanged(String value);
}

та додайте сетер для слухача (також у адаптері)

OnDataChangeListener mOnDataChangeListener;
public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener){
    mOnDataChangeListener = onDataChangeListener;
}

тепер додайте додатковий код до наступного блоку в baseadapter

private void conditionOfValuechanged() {
    ...
    if(mOnDataChangeListener != null){
        mOnDataChangeListener.onDataChanged(data.size());
    }
}

в активності вам тоді потрібно реєструвати слухача

protected void onCreate(Bundle savedInstanceState) {
    ...
    adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
        public void onDataChanged(String value){
            //do whatever here
             txtTotal.setText(value);
        }
    });
}
0
додано
ви отримали значення в адаптері, скажіть "hallo" & від самого адаптера вам потрібно отримати доступ до textview [всередині фрагмента] і встановити значення
додано Автор Basil jose, джерело
Вибач за те ! але намагатиметься допомогти вам, чи можете ви пояснити трохи більше про потік
додано Автор Basil jose, джерело
Ви втратили мене, вибачте. Я отримую значення від адаптера, а потім встановлюю це значення на txtTotal
додано Автор Prince Princes, джерело

Надаючи простий зворотний виклик.

Для цього треба написати простий інтерфейс у вашому адаптері

public interface OnDataChangeListener{
    public void onDataChanged(String value);
}

та додайте сетер для слухача (також у адаптері)

OnDataChangeListener mOnDataChangeListener;
public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener){
    mOnDataChangeListener = onDataChangeListener;
}

тепер додайте додатковий код до наступного блоку в baseadapter

private void conditionOfValuechanged() {
    ...
    if(mOnDataChangeListener != null){
        mOnDataChangeListener.onDataChanged(data.size());
    }
}

в активності вам тоді потрібно реєструвати слухача

protected void onCreate(Bundle savedInstanceState) {
    ...
    adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
        public void onDataChanged(String value){
            //do whatever here
             txtTotal.setText(value);
        }
    });
}
0
додано
ви отримали значення в адаптері, скажіть "hallo" & від самого адаптера вам потрібно отримати доступ до textview [всередині фрагмента] і встановити значення
додано Автор Basil jose, джерело
Вибач за те ! але намагатиметься допомогти вам, чи можете ви пояснити трохи більше про потік
додано Автор Basil jose, джерело
Ви втратили мене, вибачте. Я отримую значення від адаптера, а потім встановлюю це значення на txtTotal
додано Автор Prince Princes, джерело

спробуйте це:

1.Go з інтерфейсом Java.

public interface MyListener {
   //you can define any parameter as per your requirement
    public void callback(View view, String result);
}

2. У вашому фрагменті класу:

 public class MyActivity extends fragment implements MyListener {
   @override        
   public void onCreate(){
        MyButton m = new MyButton(this);
   }

   //method is invoked when MyButton is clicked
    @override
    public void callback(View view, String result) {   
       //do your stuff here
    }
}

3.в класі адаптера:

public class someClass extends BaseAdapter implements MyListener {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }

тут 2 і 3 або необов'язково, де і хочете поділитися своїми даними або фрагмент або baseAdapter.

Дозвольте мені знати, це добре чи ні.

0
додано
нормально, коли змінюється ваша вартість?
додано Автор Revathi Manoharan, джерело
Мені потрібно оновити totalTxt автоматично, коли дані змінюються. Мені потрібен доступ до перегляду totalTxt, а не значення.
додано Автор Prince Princes, джерело

спробуйте це:

1.Go з інтерфейсом Java.

public interface MyListener {
   //you can define any parameter as per your requirement
    public void callback(View view, String result);
}

2. У вашому фрагменті класу:

 public class MyActivity extends fragment implements MyListener {
   @override        
   public void onCreate(){
        MyButton m = new MyButton(this);
   }

   //method is invoked when MyButton is clicked
    @override
    public void callback(View view, String result) {   
       //do your stuff here
    }
}

3.в класі адаптера:

public class someClass extends BaseAdapter implements MyListener {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }

тут 2 і 3 або необов'язково, де і хочете поділитися своїми даними або фрагмент або baseAdapter.

Дозвольте мені знати, це добре чи ні.

0
додано
нормально, коли змінюється ваша вартість?
додано Автор Revathi Manoharan, джерело
Мені потрібно оновити totalTxt автоматично, коли дані змінюються. Мені потрібен доступ до перегляду totalTxt, а не значення.
додано Автор Prince Princes, джерело

спробуйте це:

1.Go з інтерфейсом Java.

public interface MyListener {
   //you can define any parameter as per your requirement
    public void callback(View view, String result);
}

2. У вашому фрагменті класу:

 public class MyActivity extends fragment implements MyListener {
   @override        
   public void onCreate(){
        MyButton m = new MyButton(this);
   }

   //method is invoked when MyButton is clicked
    @override
    public void callback(View view, String result) {   
       //do your stuff here
    }
}

3.в класі адаптера:

public class someClass extends BaseAdapter implements MyListener {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }

тут 2 і 3 або необов'язково, де і хочете поділитися своїми даними або фрагмент або baseAdapter.

Дозвольте мені знати, це добре чи ні.

0
додано
нормально, коли змінюється ваша вартість?
додано Автор Revathi Manoharan, джерело
Мені потрібно оновити totalTxt автоматично, коли дані змінюються. Мені потрібен доступ до перегляду totalTxt, а не значення.
додано Автор Prince Princes, джерело

спробуйте це:

1.Go з інтерфейсом Java.

public interface MyListener {
   //you can define any parameter as per your requirement
    public void callback(View view, String result);
}

2. У вашому фрагменті класу:

 public class MyActivity extends fragment implements MyListener {
   @override        
   public void onCreate(){
        MyButton m = new MyButton(this);
   }

   //method is invoked when MyButton is clicked
    @override
    public void callback(View view, String result) {   
       //do your stuff here
    }
}

3.в класі адаптера:

public class someClass extends BaseAdapter implements MyListener {
         //everytime the data here is changed, I would like to update 
           the value of the totalTxt above from this class
    }

тут 2 і 3 або необов'язково, де і хочете поділитися своїми даними або фрагмент або baseAdapter.

Дозвольте мені знати, це добре чи ні.

0
додано
нормально, коли змінюється ваша вартість?
додано Автор Revathi Manoharan, джерело
Мені потрібно оновити totalTxt автоматично, коли дані змінюються. Мені потрібен доступ до перегляду totalTxt, а не значення.
додано Автор Prince Princes, джерело
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників

android_jobs_ua
android_jobs_ua
120 учасників

Публикуем вакансии и запросы на поиск работы по направлению Android. Здесь всё: full-time, part-time, remote и разовые подработки.

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.