在点击另一个片段中的按钮后添加新的textview

问题描述:

我有两个片段。在第一个按钮上点击按钮后,它会使用一些SharedPreferences移动到第二个片段。每次我点击那个按钮,我想在第二个片段的SharedPreferences中添加新的textview文本。在点击另一个片段中的按钮后添加新的textview

这里是第二个片段下一次代码,我想添加textviews

public class HomeFragment extends Fragment{ 


    public HomeFragment() { 
     // Required empty public constructor 
    } 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_home, container, false); 

     SharedPreferences sharedPreferences = this.getActivity().getSharedPreferences("MyData", Context.MODE_PRIVATE); 
     String Income =sharedPreferences.getString("Income","N/A"); 

     LinearLayout m_ll = (LinearLayout) view.findViewById(R.id.home); 

     m_ll.addView(createNewTextView(Income)); 
     return m_ll; 
    } 

    private TextView createNewTextView(String text) { 
     final LinearLayoutCompat.LayoutParams lparams = new LinearLayoutCompat.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT); 
     final TextView textView = new TextView(getActivity()); 
     textView.setLayoutParams(lparams); 
     textView.setText("New text: " + text); 
     return textView; 
    } 
} 

它添加的TextView与正确的文本,但是当我按下按钮,它只是改变了TextView的文本(或创建一个TextView的另一个?)

XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:id="@+id/home" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.xxxx.HomeFragment"> 

<!-- TODO: Update blank fragment layout --> 
</LinearLayout> 
+1

它只能创建一个TextView的作为膨胀的布局将不会包含您原来的TextView了。您需要以字符串数组的形式保存数据,并根据数组长度创建多个textview – nomag

我设法使之与TinyDB,可字符串数组列表存储为SharedPreferences工作。

这是我在与片段按钮

TinyDB tinydb=new TinyDB(getActivity().getApplicationContext()); 

    incometemp = edttxt.getText().toString(); 
    mylist= tinydb.getListString("income"); 
    mylist.add(incometemp); 
    tinydb.putListString("income", mylist); 

第二个片段

TinyDB tinydb; 
    ArrayList<String> mylist = new ArrayList<>(); 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.fragment_home, container, false); 
     tinydb = new TinyDB(getActivity().getApplicationContext()); 
     mylist = tinydb.getListString("income"); 
     LinearLayout m_ll = (LinearLayout) view.findViewById(R.id.home); 

     for (int i=0;i<mylist.size();i++) { 
      m_ll.addView(createNewTextView(mylist.get(i))); 
     } 


     return m_ll; 
    } 

    private TextView createNewTextView(String text) { 
     final LinearLayoutCompat.LayoutParams lparams = new LinearLayoutCompat.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT); 
     final TextView textView = new TextView(getActivity()); 
     textView.setLayoutParams(lparams); 
     textView.setText("New text: " + text); 
     return textView; 
    } 
}