2017-10-17 63 views
1

我知道如果我想创建一条新线,我必须在需要创建线的地方插入\n。但是我得到的是没有我已经在firebase数据库中拥有的行的文本。有人可以告诉我如何解决这个问题。所以例如,如果我在数据库hello \ n世界。我得到它作为hello world。当我真的应该得到它作为如何在从firebase数据库检索数据到textview时创建换行符?

hello 
world 

我需要改变一些在firebase或我的源代码?

这是我从火力

private void getData(){ 
     firebaseDatabaseInstance = FirebaseDatabase.getInstance(); 

     // get reference to 'users' node 
     booksInstance = firebaseDatabaseInstance.getReference("monzmat"); 

     books.clear(); 
     books.addAll(db.getAllBookMonzmat()); 
     adapter = new qamoosAdapter(this, books); 
     gridView.setAdapter(adapter); 


     booksInstance.addValueEventListener(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       storeData(dataSnapshot); 
      } 

      @Override 
      public void onCancelled(DatabaseError error) { 
       // Failed to read value 
       Log.w(TAG, "Failed to read value.", error.toException()); 
      } 
     }); 

     booksInstance.orderByChild("id").addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       qamoosData book = new qamoosData(
         (String) dataSnapshot.child("id").getValue(), 
         (String) dataSnapshot.child("title").getValue(), 
         (String)dataSnapshot.child("content").getValue() 


       ); 
       db.insertMonzmat(book); 
       reloadData(); 
      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 
       qamoosData book = new qamoosData(
         (String) dataSnapshot.child("id").getValue(), 
         (String) dataSnapshot.child("title").getValue(), 
         (String)dataSnapshot.child("content").getValue() 

       ); 
       db.updateABookMonzmat(book); 
       reloadData(); 
      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 
       qamoosData book = new qamoosData(
         (String) dataSnapshot.child("id").getValue(), 
         (String) dataSnapshot.child("title").getValue(), 
         (String)dataSnapshot.child("content").getValue() 
       ); 
       db.deleteABookMonzmat(book.getId()); 
       reloadData(); 
      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
    } 




    private void storeData(DataSnapshot snapshot) { 
     books.clear(); 
     for (DataSnapshot alert: snapshot.getChildren()) { 
      qamoosData book = new qamoosData(
        (String)alert.child("id").getValue(), 
        (String)alert.child("title").getValue(), 
        (String)alert.child("content").getValue() 

      ); 
      db.insertMonzmat(book); 
     } 
     books.addAll(db.getAllBookMonzmat()); 
     // Constants.hideDialog(); 

     adapter.notifyDataSetChanged(); 
    } 

获取数据这是我的适配器

public class qamoosAdapter extends BaseAdapter { 


    Activity activity; 
    ArrayList<qamoosData> arrayList = new ArrayList<>(); 
    ArrayList<qamoosData> filterList = new ArrayList<>(); 

    LayoutInflater mLayoutInflater; 
    DBHandler db; 
    Storage storage; 

    public qamoosAdapter(Activity context, ArrayList<qamoosData> bookDatas){ 
     this.activity = context; 
     this.arrayList = bookDatas; 
     this.db = new DBHandler(context); 
     this.filterList= bookDatas; 
     mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     storage = SimpleStorage.getInternalStorage(context); 
    } 

    @Override 
    public int getCount() { 
     return arrayList.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return arrayList.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     qamoosAdapter.ViewHolder holder = new qamoosAdapter.ViewHolder(); 
     if (convertView == null) { 
      convertView = mLayoutInflater.inflate(R.layout.fragment_qamoos, null); 



      holder.name = (TextView) convertView.findViewById(R.id.bookName2_makotab_fragment); 


      if(holder.name.getText().toString().contains("\n")){ 


      } 

      convertView.setTag(holder); 

     } else { 
      holder = (qamoosAdapter.ViewHolder) convertView.getTag(); 
     } 

     holder.name.setText(arrayList.get(position).getTitle()); 
     return convertView; 
    } 


    public class ViewHolder{ 

     ImageView image; 

     TextView name; 
    } 

} 
+0

你能后,增加的数据火力地堡和代码,获取码它? –

+0

请添加您的代码。 –

+0

请看看我添加的代码 – abdo

回答

2

你可以把特殊的字符序列和检索数据后更换。 Firebase数据库不允许\字符。

所以,你可以把数据库中的:你好_B世界

和检索你以后再更换此_B \ n

+0

你能告诉我怎么可以在代码中做到这一点? – abdo

+0

当你写数据到数据库时,写_b而不是/ n。 (String)dataSnapshot.child(“content”)。getValue()。replace(“_ b”,“/ n”); 检索到数据后 –

相关问题