webSocket接続からのonMessageコールバックイベントが存在する場合、フラグメント内のテキストを更新したいと考えています。 私の主な活動はgetview()のAndroidフラグメントreutn null
public class MainActivity extends AppCompatActivity{
private static WebSocketConnection mConnection = new WebSocketConnection();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent_root_activity);
if(savedInstanceState == null){
frag_Home = new HomeFragment();
fragmentManager.beginTransaction().add(R.id.fragmentContent, frag_Home, getString(R.string.TAG_HOME)).commit();
}else{
if(fragmentManager.findFragmentByTag(getString(R.string.TAG_HOME)) == null){
frag_Home = new HomeFragment();
fragmentManager.beginTransaction().add(R.id.fragmentContent, frag_Home, getString(R.string.TAG_HOME)).commit();
}
}
}
@Override
protected void onResume() {
super.onResume();
// Start Connection
Connect(ipAdress);
Log.i("ROOT ACTIVITY", "onResume");
}
// Function callback events
private void Connect(String ipAddress){
final String wsuri = "ws://" + ipAddress + ":" + port;
try {
// Handle Websocket Event
mConnection.connect(wsuri, new WebSocketHandler() {
@Override
public void onOpen() {
Log.d("WIFI", "onOpen: Conneced to "+ wsuri);
}
@Override
public void onTextMessage(String payload) {
HomeFragment home = (HomeFragment) getSupportFragmentManager().findFragmentByTag(getString(R.string.TAG_HOME));
((TextView)home.getView().findViewById(R.id.txtMsg)).setText(payload);
}
Override
public void onClose(int code, String reason) {
}
}
}
}
}
と家庭断片
public class HomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
txtVw = (TextView) view.findViewById(R.id.txtMsg);
return view;
}
}
は、すべてのテキストが正しく更新されますが、メッセージを受信したとき、私は自分の携帯電話を回転させたときに、私は
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View test.test.com.test.HomeFragment.getView()' on a null object reference
とGET正常に動作することを持っていますテキストは決して再び更新されません。
なぜ設定しますか?テキストが正しく更新されます。画面を回転させるとビューのIDが緩くなります –