简体   繁体   English

我正在尝试将一个活动中的用户输入存储到另一个活动中的列表视图中。 它不会工作

[英]I am attempting to store user input in one activity to a listview in another activity. It wont work

I have been attempting to store data into a ListView as separate items but it just isn't working. 我一直试图将数据作为单独的项目存储到ListView ,但是它无法正常工作。 If someone who understands Android Studio and my issue could help me I would be so helpful. 如果了解Android Studio的人和我的问题可以帮助我,那么我将非常有帮助。 I think my organization in MainActivity.java might be why it doesn't work. 我认为我在MainActivity.java中的组织可能就是为什么它不起作用。 MainActivity.java has the ListView while NewTask.java is where the user inputs data such as the name of a task and its due date. MainActivity.java具有ListViewNewTask.java是用户输入数据的位置,例如任务名称及其到期日期。 I have used startActivityForResult() but I am still having an issue. 我已经使用了startActivityForResult()但是仍然遇到问题。 Please help. 请帮忙。

MainActivity.java MainActivity.java

package com.example.shaan.todoer;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;


public class MainActivity extends Activity {

ArrayList<String> list = new ArrayList<String>();

ArrayAdapter<String> adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Things still left to do:
    //Prevent Overriding of Items
    //Activate Delete Tasks on Hard Click of Items
    //Fit Name, Date, and Priority on One Line of List
    //Attempt to be able to sort items in Listview

    Button firstButton = (Button) findViewById(R.id.add_task_group);

    firstButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, CalendarViewActivity.class));
        }
    });
}

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, list);
        ListView listViewToDo = (ListView) findViewById(R.id.listViewToDo);
        listViewToDo.setAdapter(adapter);
        Intent i = new Intent(this, NewTask.class);
        startActivityForResult(i, 1);
        if(requestCode == 1) {
            if(resultCode == RESULT_OK) {
                String str = data.getStringExtra("type_task_name");
                String str1 = data.getStringExtra("text_date");
                int seek = data.getIntExtra("seekBar", 0);

                adapter.add(str);
            }
            adapter.notifyDataSetChanged();
        }
    }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

NewTask.java NewTask.java

package com.example.shaan.todoer;

import java.util.Calendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;


public class NewTask extends Activity implements OnClickListener {
Button set_date;

private int calYear, calMonth, calDay;
private SeekBar slider;
private TextView sliderLevel;


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_new_task);
    initialize();

    Button cancel_new_task = (Button) findViewById(R.id.cancel_new_task);
    cancel_new_task.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(NewTask.this, MainActivity.class));
        }
    });

    sliderLevel.setText("Priority Level: " + slider.getProgress() + "/" + slider.getMax());
    slider.setOnClickListener(this);
    slider.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        int work = 0;

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            work = progress;
            Toast.makeText(getApplicationContext(), "Priority Level is Changing", Toast.LENGTH_SHORT);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            Toast.makeText(getApplicationContext(), "Started tracking Slider", Toast.LENGTH_SHORT);

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            sliderLevel.setText("Priority Level: " + work + "/" + slider.getMax());
            Toast.makeText(getApplicationContext(), "Stopped tracking Slider", Toast.LENGTH_SHORT);
        }



    });


}

private void initialize() {
    slider = (SeekBar) findViewById(R.id.seekBar);
    sliderLevel = (TextView) findViewById(R.id.textView7);
    set_date = (Button) findViewById(R.id.set_date);
    text_date = (EditText) findViewById(R.id.text_date);
    set_date.setOnClickListener(this);
    text_date.setOnClickListener(this);
    create_task = (Button) findViewById(R.id.create_task);
    type_task_name = (EditText) findViewById(R.id.type_task_name);
    seekBar = (SeekBar) findViewById(R.id.seekBar);
    text_date = (EditText) findViewById(R.id.text_date);

}

Button create_task;
EditText type_task_name;
SeekBar seekBar;
EditText text_date;


@Override
public void onClick(View v) {
    if (v == set_date) {
        final Calendar cal = Calendar.getInstance();
        calYear = cal.get(Calendar.YEAR);
        calMonth = cal.get(Calendar.MONTH);
        calDay = cal.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog date = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker look, int year, int month, int day) {
                text_date.setText((month + 1) + "/" + (day) + "/" + year);

            }
        }, calYear, calMonth, calDay);
        date.show();
    }
}

public void buttonAddClick(View v) {
    startActivity(new Intent(NewTask.this, MainActivity.class));
    Intent i = new Intent();
    i.putExtra("type_task_name", type_task_name.getText().toString());
    i.putExtra("text_date", text_date.getText().toString());
    i.putExtra("seekBar", seekBar.getProgress());
    setResult(RESULT_OK, i);
    finish();
}
}

You don't need to get data in onActivityResults because it calles when you returns back to your activity If your activity is new in stack then you can get it's bumndle data in onCreate Method so for this put follwing code- 您不需要在onActivityResults中获取数据,因为它会在您返回到活动时调用。如果您的活动是堆栈中的新内容,那么您可以在onCreate方法中获取它的气泡数据,因此对于此代码来说,

NewTask.java NewTask.java

public void buttonAddClick(View v) {

    Intent i = new Intent(NewTask.this, MainActivity.class);
    i.putExtra("type_task_name", type_task_name.getText().toString());
    i.putExtra("text_date", text_date.getText().toString());
    i.putExtra("seekBar", seekBar.getProgress());
    startActivity(i);

}

in MainActivity.java 在MainActivity.java中

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // your data from which Activity you called it.
    Bundle data = getIntent().getExtras();
    if (data != null) {
       String str = data.getString("type_task_name");
       String str1 = data.getString("text_date");
        int value = data.getInt("seekBar");
     }
  // now do whatever you want to do with this data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在一个活动中将图像从ImageView发送到另一个活动中的ImageButton。 Android Studio - How can I send an image from an ImageView in one activity to an ImageButton in another activity. Android Studio 单击按钮切换到另一个活动时,我的应用程序被强制关闭。 我把我的代码放在这里 - My app is force closing when clicking on button to switch to another activity. here i am putting my code 我有一个活动。 在本活动中,我执行了AsyncTask,但是没有用 - I have one Activity. In this Activity, I executed a AsyncTask , but it's not working 通知活动,有关另一个活动的更改。 这可能吗? - Notify activity, about changes in another activity. Is this possible? 如何在Android中将用户输入从一项活动传递到另一项活动 - How to pass user input from one activity to another in Android Android-如何更新其他活动的数据。 在您正在从事的工作之外 - Android- How to update data on another activity. Outside the one you're working on 将用户输入发送到不同活动中的 ListView - Sending User Input to a ListView in a different Activity 通过在另一个活动中单击按钮将项目添加到ListView中的一个片段中 - Add items to ListView in a fragment in one Activity by clicking a button in another activity 将listView数据从一个活动发送到另一个活动 - Send listView data from one activity to another Android Studio:如何从活动获取用户输入(从微调器和编辑文本)到另一个活动? - Android Studio: How do I get user input (From Spinner and Edit Text) from activity to another activity?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM