0
在我的應用我的活動之一,如何獲取用戶輸入並將其傳遞給Android Sutdio中的另一個片段?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_input);
idInput = (EditText) findViewById(R.id.user_id_input);
submitButton = (Button) findViewById((R.id.submit_button));
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
githubID = idInput.getText().toString();
}
});
}
我創建了一個部分,其中用戶可以輸入一個名爲「githubID」字符串。我試圖將這個提交給另一個名爲profile_tab的片段,其中github API URL被解析並用於顯示用戶的信息。該profile_tab樣子:
public class ProfileTab extends Fragment{
// URL of the Github API to be parsed
final String APIURL = "https://api.github.com/users/" + userID;
// All TextView data to be displayed on the profile_tab layout
...
// Data for the profile(avatar) image
...
// ViewPager for navigating to another tab
private ViewPager viewPager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
...
我怎樣才能從第一頁的輸入字符串,然後傳遞值到ProfileTab頁面並更換「用戶ID」的字符串?
編輯:
UserInput.java
public class UserInput extends AppCompatActivity {
String githubID;
EditText idInput;
Button submitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_input);
idInput = (EditText) findViewById(R.id.user_id_input);
submitButton = (Button) findViewById((R.id.submit_button));
SharedDataUtils.createSP(this, idInput.getText().toString());
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
githubID = idInput.getText().toString();
Intent intent = new Intent(UserInput.this, MainActivity.class);
intent.putExtra("flag", 1);
startActivity(intent);
}
});
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
private FragmentManager fragmentManager;
private FragmentTransaction fragmentTransaction;
private SectionsPageAdapter pageAdapter;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragmentManager = getSupportFragmentManager();
fragmentTransaction = fragmentManager.beginTransaction();
Intent intent = getIntent();
int flag = intent.getIntExtra("flag", -1);
if(flag > 0) {
if(flag == 1) {
fragmentTransaction.replace(R.id.layout, ProfileTab);
}
}
pageAdapter = new SectionsPageAdapter(getSupportFragmentManager());
// Sets up the ViewPager with the sections adapter
viewPager = (ViewPager) findViewById(R.id.container);
setupViewPager(viewPager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager((viewPager));
}
// Adds fragments to SectionsPageAdapter and gives names for the corresponding tab
private void setupViewPager(ViewPager viewPager) {
SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
adapter.addFragment(new ProfileTab(), "Profile");
adapter.addFragment(new GithubTab(), "Github Repos");
adapter.addFragment(new FollowerTab(), "Followers");
adapter.addFragment(new FollowingTab(), "Followings");
viewPager.setAdapter(adapter);
}
}
ProfileTab.java(片段解析JSON)
public class ProfileTab extends Fragment{
// URL of the Github API to be parsed
private String APIURL;
private String userID;
// All TextView data to be displayed on the profile_tab layout
private TextView githubID;
private TextView numRepos;
private TextView numFollowers;
private TextView numFollowings;
private TextView userBio;
private TextView userWebsite;
private TextView userName;
private TextView createdDate;
// Data for the profile(avatar) image
private ImageView avatarImage;
private String avatarURL;
Bitmap imageBitmap;
// ViewPager for navigating to another tab
private ViewPager viewPager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
... code hidden ...
}
這是我看你的幫助後,沒有和我對
int flag = intent.getIntExtra("flag", -1);
if(flag > 0) {
if(flag == 1) {
fragmentTransaction.replace(R.id.layout, ProfileTab);
}
}
得到一個錯誤的MainActivity.java任何想法,我做錯了什麼?
太謝謝你了!但我實際上忘了問我怎麼才能立即移動到我點擊按鈕後發送數據的片段? – Dawn17
「片段」處於當前活動或下一個活動中。 – KeLiuyue
下一個活動。 – Dawn17