从意图中检索信息,然后将其设置为片段内的文本视图 - Android

时间:2017-10-12 08:00:28

标签: java android android-fragments android-intent

我有以下代码,其中我试图使用意图检索我从主要活动发送的数据,在我的下一个活动中,我正在扩展一个片段类(这是必不可少的,因为我正在使用第三方库加入动画图表)。我遇到的问题是我的应用程序运行没有任何错误,但信息没有显示在文本框中。扩展片段类时,“SetText”有不同的语法吗?

我创建一个行活动时的代码(Snippet,因为不允许完整的代码:

  dateButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                dateButton.setText(date.toString());

                // Creates an instance of current DateTime which represents the
                // current date time.
                DateTime dateTime = new DateTime();
                DateTimeFormatter fmt = DateTimeFormat.forPattern("E d MMM yyyy" + "\n" + " h:mm a ");
                String formattedtime = fmt.print(dateTime);
                dateButton.setText(formattedtime);

                // Plus some hours, minutes, and seconds to the original DateTime.
                DateTimeFormatter fmt2 = DateTimeFormat.forPattern("E d MMM yyyy" + "\n" + " h:mm a ");

                DateTime dateTime1 = dateTime.plusHours(timeadded);
                String endtimecalc = fmt2.print(dateTime1);
                TextView endtime = findViewById(endtimetextView);
                endtime.setText(endtimecalc);

                String spinnerSelection = String.valueOf(spinner.getSelectedItem());
                String spinnerSelection2 = String.valueOf(spinner2.getSelectedItem());
                String q = quantity.getText().toString();
                String d = duration.getText().toString();

                //INSERT DATA TO DATABASE
                boolean isInserted = myDb.insertData(
                        spinnerSelection,
                        spinnerSelection2,
                        q,
                        d,
                        formattedtime,
                        endtimecalc);

                if (isInserted == true)
                    Toast.makeText(CreateLine.this, "Data Inserted Successfully", Toast.LENGTH_LONG).show();
                else
                    Toast.makeText(CreateLine.this, "Data not Inserted", Toast.LENGTH_LONG).show();

            }
        });


        nextButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {

                    Cursor res = myDb.getAllData();

                    StringBuffer buffer0 = new StringBuffer();
                    StringBuffer buffer1 = new StringBuffer();
                    StringBuffer buffer2 = new StringBuffer();
                    StringBuffer buffer3 = new StringBuffer();
                    StringBuffer buffer4 = new StringBuffer();
                    StringBuffer buffer5 = new StringBuffer();
                    StringBuffer buffer6 = new StringBuffer();


                    if ( res != null && res.moveToFirst()) {
                        do {

                            buffer0.setLength(0);
                            buffer1.setLength(0);
                            buffer2.setLength(0);
                            buffer3.setLength(0);
                            buffer4.setLength(0);
                            buffer5.setLength(0);
                            buffer6.setLength(0);

                            String getid = res.getString(0);
                            String getlt = res.getString(1);
                            String getpt = res.getString(2);
                            String getqty = res.getString(3);
                            String getdur = res.getString(4);
                            String getst = res.getString(5);
                            String getet = res.getString(6);

                            buffer0.append(getid);
                            buffer1.append(getlt);
                            buffer2.append(getpt);
                            buffer3.append(getqty);
                            buffer4.append(getdur);
                            buffer5.append(getst);
                            buffer6.append(getet);
                        } while (res.moveToNext());
                    }


                Intent TransferData = new Intent(CreateLine.this, LineDetails.class);
                                    Bundle extras = new Bundle();


                extras.putString("ID", buffer0.toString());
                extras.putString("LineType", buffer1.toString());
                extras.putString("PackageType", buffer2.toString());
                extras.putString("Quantity", buffer3.toString());
                extras.putString("Duration", buffer4.toString());
                extras.putString("Starttime",buffer5.toString());
                extras.putString("endtime", buffer6.toString());
                TransferData.putExtras(extras);


                setContentView(R.layout.line_details);
                SamplerAdapter samplesAdapter = new SamplerAdapter(getSupportFragmentManager());
                ViewPager samplesPager = (ViewPager) findViewById(R.id.samplesPager);
                samplesPager.setAdapter(samplesAdapter);


            }
        });
    }

}

我在接收行详细信息中的代码:

public class LineDetails extends SampleFragment {
final private float[] mTrackBackWidth = {30f, 60f, 30f, 40f, 30f};
final private float[] mTrackWidth = {30f, 30f, 30f, 30f, 30f};
final private boolean[] mClockwise = {true, true, true, false, true};
final private boolean[] mRounded = {true, true, true, true, true};
final private boolean[] mPie = {false, false, false, false, true};
final private int[] mTotalAngle = {360, 360, 320, 260, 360};
final private int[] mRotateAngle = {0, 180, 180, 0, 270};
private int mBackIndex;
private int mSeries1Index;
private int mSeries2Index;
private int mStyleIndex;

SQLiteDatabase db;
DatabaseHelper databaseHelper;
Cursor cursor;



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View myInflatedView = inflater.inflate(R.layout.line_details, container, false);

    Intent ReceiveData = getActivity().getIntent();
    Bundle extras = ReceiveData.getExtras();

    String id = extras.getString("ID");
    String linetype = extras.getString("LineType");
    String packagetype = extras.getString("PackageType");
    String Quantity = extras.getString("Quantity");
    String Duration = extras.getString("Duration");
    String Starttime = extras.getString("Starttime");
    String endtime = extras.getString("endtime");

    TextView LT = (TextView)    myInflatedView.findViewById(R.id.textViewLT);
    TextView PT = (TextView)    myInflatedView.findViewById(R.id.textViewPT);
    TextView QTY = (TextView)   myInflatedView.findViewById(R.id.textViewQTY);
    TextView DUR = (TextView)   myInflatedView.findViewById(R.id.textViewDUR);
    TextView ST = (TextView)    myInflatedView.findViewById(R.id.textViewST);
    TextView ET = (TextView)     myInflatedView.findViewById(R.id.textViewET);

    LT.setText(linetype);
    PT.setText(packagetype);
    QTY.setText(Quantity);
    DUR.setText(Duration);
    ST.setText(Starttime);
    ET.setText(endtime);

    return myInflatedView;

}

2 个答案:

答案 0 :(得分:0)

如果您有多个值,请尝试使用Bundles:

发送意图:

    Intent intent = new Intent(MainActivity.this, Report_Fragment.class);
                    Bundle extras = new Bundle();

                    extras.putFloat("bmi",mybmi);
                    extras.putFloat("fats",myfat);
                    extras.putString("weight",myfinalweight);
                    extras.putString("coments",coments);
                    intent.putExtras(extras);
                    startActivity(intent);

获取片段中的意图:

  Intent intent = getActivity().getIntent();
    Bundle extras = intent.getExtras();
    Float bmi = extras.getFloat("bmi");
    Float fats = extras.getFloat("fats");
    String weight=extras.getString("weight");
    String coments=extras.getString("coments");

用你的变量替换我的变量!

答案 1 :(得分:0)

试试吧

发送

    Fragment fragment=new LineDetails();
    Bundle extras = new Bundle();

    extras.putFloat("bmi",mybmi);
    extras.putFloat("fats",myfat);
    extras.putString("weight",myfinalweight);
    extras.putString("coments",coments);
    fragment.setArguments(extras);
    getSupportFragmentManager().beginTransaction().add(R.id.frame_container,fragment).commit();

获取,

Float bmi = getArguments().getFloat("bmi");
Float fats = getArguments().getFloat("fats");
String weight=getArguments().getString("weight");
String coments=getArguments().getString("coments");