2015-01-18 5 views
0

Я пытаюсь увеличить значение в textview на 1 во втором фрагменте, когда нажата кнопка fron первого фрагмента. Нет ошибки, обнаруженной с помощью IDE (eclipse). Когда я запустил приложение и нажал кнопку, появится диалоговое окно с сообщением [к сожалению, apple (мое имя приложения) остановлено] .I google и обнаружил, что мы должны использовать интерфейс для взаимодействия. Но я хочу знать, где я делаю ошибку. В какой концепции я применяю неверно. Помогите мне ...Невозможно понять связь между фрагментами?

MainActivity.Java

FirstFragment

package com.iphone.apple; 

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.Button; 

public class MyFragment extends Fragment implements OnClickListener { 
int counter = 0; 
Button mButton; 
MainActivity ob; 

@Override 
public View onCreateView(LayoutInflater inflater, 
     @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    return inflater.inflate(R.layout.myfragment, container, false); 
} 

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onActivityCreated(savedInstanceState); 
    mButton = (Button) getView().findViewById(R.id.button1); 
    mButton.setOnClickListener(this); 
    ob = new MainActivity(); 
} 

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 
    counter++; 
    ob.run(counter); 
} 

} 

SecondFragment

package com.iphone.apple; 

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

public class MyFragment_2 extends Fragment { 
    TextView ob = null; 

@Override 
public View onCreateView(LayoutInflater inflater, 
     @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)    { 
    // TODO Auto-generated method stub 
    return inflater.inflate(R.layout.fragment_2, container, false); 
} 

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onActivityCreated(savedInstanceState); 
    ob = (TextView) getView().findViewById(R.id.textview); 
} 

public void rockon(int count) { 
    ob.setText("count:"+count); 
    } 
    } 

ответ

1
ob = new MainActivity(); 

Вы никогда не должны инстанцирует это деятельность самостоятельно. Это ответственность за рамки Android.

Смежные вопросы