在点击另一个片段中的按钮后添加新的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>
答
我设法使之与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;
}
}
它只能创建一个TextView的作为膨胀的布局将不会包含您原来的TextView了。您需要以字符串数组的形式保存数据,并根据数组长度创建多个textview – nomag