Android 如何从OnItemSelectedListener中的OnClickListener中的另一个类获取字符串

Android 如何从OnItemSelectedListener中的OnClickListener中的另一个类获取字符串,android,Android,我正在尝试从另一个类获取字符串,并在MainActivity中使用它。字符串在OnClickListener内的OnClickListener中初始化。 我搜索了一些解决方案,但是使用Intent的方法在这里不起作用,因为我没有在活动之间切换,我想要MainActivity中的字符串。我尝试了使用SharedReferences的方法,但没有成功。 下面是带有字符串的类的代码 时间表 public class TimeForm extends AppCompatActivity{ public

我正在尝试从另一个类获取字符串,并在MainActivity中使用它。字符串在OnClickListener内的OnClickListener中初始化。 我搜索了一些解决方案,但是使用Intent的方法在这里不起作用,因为我没有在活动之间切换,我想要MainActivity中的字符串。我尝试了使用SharedReferences的方法,但没有成功。 下面是带有字符串的类的代码

时间表

public class TimeForm extends AppCompatActivity{

public ArrayList<String> arrayList;
ListView dayListView;
ArrayAdapter<String> arrayAdapter;
private static List<String> fromArrayList;
ArrayList<String> untilArrayList;
public String currentDay;
EditText fromEditText;
EditText untilEditText;
EditText multiLineEditText;
ListView itemsListView;
Button submitButton;
EditText actionEditText;
private FirebaseFirestore db;
private static final String TAG = "TimeForm";

public String CurrentDay;


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

    //Variables==============================================================
    dayListView = (ListView)findViewById(R.id.dayListView);
    arrayList = new ArrayList<String>();
    final TextView dayTextView = (TextView)findViewById(R.id.dayTextView);
    submitButton = (Button)findViewById(R.id.submitButton);
    fromEditText = (EditText)findViewById(R.id.fromEditText);
    multiLineEditText = (EditText)findViewById(R.id.actionEditText);
    untilEditText = (EditText)findViewById(R.id.untilEditText);
    arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList);
    fromArrayList = new ArrayList<String>();
    untilArrayList = new ArrayList<String>();
    final ArrayAdapter fromArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, fromArrayList);
    ArrayAdapter untilArrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, untilArrayList);
    itemsListView = (ListView)findViewById(R.id.itemsListView);
    actionEditText = (EditText)findViewById(R.id.actionEditText);

    ////////////////////////////////////////////////////////////////////////////////

    arrayList.add("Monday");
    arrayList.add("Tuesday");
    arrayList.add("Wednesday");
    arrayList.add("Thursday");
    arrayList.add("Friday");
    arrayList.add("Saturday");
    arrayList.add("Sunday");
    final GlobalClass globalClass = (GlobalClass) this.getApplicationContext();
    dayListView.setAdapter(arrayAdapter);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
    dayListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
            TextView enterActionTextView = (TextView)findViewById(R.id.enterActionTextView);
            EditText actionEditText = (EditText)findViewById(R.id.actionEditText);
            currentDay = arrayList.get(position);
            TextView enterTimeTextView = (TextView)findViewById(R.id.enterActionTextView);
            dayTextView.setText(currentDay);
            submitButton = (Button)findViewById(R.id.submitButton);
            submitButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String fromText = fromEditText.getText().toString();
                    final String untilText = untilEditText.getText().toString();
                    final String actionText = multiLineEditText.getText().toString();

                    if(fromText.matches("") || untilText.matches("") || actionText.matches("")){
                        Toast.makeText(getApplicationContext(), "Please fill the whole Form", Toast.LENGTH_LONG).show();
                    }else{                                                     
                        Toast.makeText(TimeForm.this, "Saved", Toast.LENGTH_SHORT).show();
                        globalClass.setTestString(actionText);
                        fromEditText.setText("");
                        untilEditText.setText("");
                        multiLineEditText.setText("");
                    }
                }
            });
        }
    });



}

@Override
public boolean onCreateOptionsMenu(Menu menu){
    getMenuInflater().inflate(R.menu.nevigation_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent reportBugIntent = new Intent(TimeForm.this, com.anastasispap.schedulemaker.ReportBug.class);
    Intent mainActivityIntent = new Intent(TimeForm.this, MainActivity.class);
    switch (item.getItemId()){
        case R.id.action_file:
            startActivity(timeFormIntent);
    }
    if(item.getItemId() == R.id.action_reportbug){
        startActivity(reportBugIntent);
    }else if(item.getItemId() == R.id.action_home){
        startActivity(mainActivityIntent);
   }

    return super.onOptionsItemSelected(item);

}

}
公共类时间格式扩展了AppCompative活动{
公共ArrayList ArrayList;
ListView dayListView;
ArrayAdapter ArrayAdapter;
来自ArrayList的私有静态列表;
ArrayList直到ArrayList;
公众日;
编辑文本来自编辑文本;
编辑文本,直到编辑文本;
编辑文本多行编辑文本;
列表视图项列表视图;
按钮提交按钮;
编辑文本操作编辑文本;
私有FirebaseFirestore数据库;
私有静态最终字符串TAG=“TimeForm”;
公众日;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u time\u表单);
//变数==============================================================
dayListView=(ListView)findViewById(R.id.dayListView);
arrayList=新的arrayList();
final TextView dayTextView=(TextView)findViewById(R.id.dayTextView);
submitButton=(按钮)findViewById(R.id.submitButton);
fromEditText=(EditText)findViewById(R.id.fromEditText);
multileEditText=(EditText)findViewById(R.id.actionEditText);
untileditext=(EditText)findViewById(R.id.untileditext);
arrayAdapter=新的arrayAdapter(这是android.R.layout.simple\u list\u item\u 1,arrayList);
fromArrayList=新的ArrayList();
untilArrayList=newarraylist();
最终ArrayAdapter fromArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,fromArrayList);
ArrayAdapter untilArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,untilArrayList);
itemsListView=(ListView)findViewById(R.id.itemsListView);
actionEditText=(EditText)findViewById(R.id.actionEditText);
////////////////////////////////////////////////////////////////////////////////
arrayList.add(“星期一”);
arrayList.add(“星期二”);
arrayList.add(“星期三”);
arrayList.add(“星期四”);
arrayList.add(“星期五”);
arrayList.add(“星期六”);
arrayList.add(“星期日”);
final GlobalClass GlobalClass=(GlobalClass)this.getApplicationContext();
setAdapter(arrayAdapter);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u INPUT\u ADJUST\u PAN);
dayListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、最终整型位置、长id){
TextView enterActionTextView=(TextView)findViewById(R.id.enterActionTextView);
EditText actionEditText=(EditText)findViewById(R.id.actionEditText);
currentDay=arrayList.get(位置);
TextView enterTimeTextView=(TextView)findViewById(R.id.enterActionTextView);
dayTextView.setText(当前日期);
submitButton=(按钮)findViewById(R.id.submitButton);
submitButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最后一个字符串fromText=fromEditText.getText().toString();
最后一个字符串untilText=untileditext.getText().toString();
最后一个字符串actionText=multiliedItemText.getText().toString();
if(fromText.matches(“”)| | unteltext.matches(“”)| | actionText.matches(“”){
Toast.makeText(getApplicationContext(),“请填写整个表单”,Toast.LENGTH\u LONG.show();
}否则{
Toast.makeText(TimeForm.this,“Saved”,Toast.LENGTH_SHORT.show();
globalClass.setTestString(actionText);
fromEditText.setText(“”);
untileditext.setText(“”);
MultiliedItemText.setText(“”);
}
}
});
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.u菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
Intent reportBugIntent=新的Intent(TimeForm.this,com.anastasispap.schedulemaker.ReportBug.class);
Intent mainActivityIntent=新的Intent(TimeForm.this,MainActivity.class);
开关(item.getItemId()){
案例R.id.action\u文件:
startActivity(时间内容);
}
if(item.getItemId()==R.id.action\u reportbug){
startActivity(报告意图);
}else if(item.getItemId()==R.id.action\u home){
startActivity(主活动意图);
}
返回super.onOptionsItemSelected(项目);
}
}
我想要得到的字符串是fromText、untilText和actionText。 我想让这些字符串在main活动中得到它们

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";


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

    ListView itemsListView = (ListView) findViewById(R.id.itemsListView);
    final TextView itemsTextView = (TextView)findViewById(R.id.itemsTextView);
    final ArrayList<String> itemsArrayList = new ArrayList<String>();
    final TextView dayTextView = (TextView)findViewById(R.id.dayTextView);
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, itemsArrayList);

    Date currentTime = Calendar.getInstance().getTime();
    dayTextView.setText(new SimpleDateFormat("EEEE MM yyyy", Locale.ENGLISH).format(currentTime.getTime()));

    Button button = (Button)findViewById(R.id.button2);
    final GlobalClass globalClass = (GlobalClass) this.getApplicationContext();
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this, globalClass.getTestString(), Toast.LENGTH_SHORT).show();
        }
    });

}

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

    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent timeFormIntent = new Intent(MainActivity.this, TimeForm.class);
    Intent reportBugIntent = new Intent(MainActivity.this, ReportBug.class);
    Intent mainActivityIntent = new Intent(MainActivity.this, MainActivity.class);
    switch (item.getItemId()){
        case R.id.action_file:
            startActivity(timeFormIntent);
    }
    if(item.getItemId() == R.id.action_reportbug){
        startActivity(reportBugIntent);
    }
    return super.onOptionsItemSelected(item);
}


}
public类MainActivity扩展了AppCompatActivity{
私有静态最终字符串TAG=“MainActivity”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView itemsListView=(ListView)findViewById(R.id.itemsListView);
最终文本视图itemsTextView=(文本视图)findViewById(R.id.itemsTextView);
最终ArrayList itemsArrayList=新ArrayList();
final TextView dayTextView=(TextView)findViewById(R.id.dayTextView);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,itemsara
public interface IMainActivity {
void fromText(String fromText);
void untilText(String untilText);
void actionText(String actionText);
}
public class GlobalClass extends Application {
    private String yourString;

    public String getYourString() {
        return yourString;
    }

    public void setYourString(String yourString) {
        this.yourString = yourString;
    }
}
<application
    android:name=".GlobalClass"
globalClass = (GlobalClass) this.getApplicationContext();
globalClass = (GlobalClass) context.getApplicationContext();
String fromString = "some value";
globalClass.setYourString(fromString)
String fromString = globalClass.getYourString();