2016-08-26 56 views
1

我在點擊一個新活動時顯示前一個片段的字符串時遇到了一些問題。該字符串顯示爲「isnull」。在新活動中顯示前一個片段的數據時出現故障

任何幫助將不勝感激。相關代碼如下。

技能活動:

public class Skill extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_skill); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     Intent in = getIntent(); 
     String skill = in.getStringExtra("skill"); 

     TextView dispSkill = (TextView) findViewById(R.id.skill); 
     dispSkill.setText("this skill is" + skill); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 
      } 
     }); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    } 

} 

RVAdapter(以前的片段):

public static class AssessViewHolder extends RecyclerView.ViewHolder 
     implements View.OnClickListener { 

    CardView cv; 
    TextView assessName; 
    TextView pracName; 
    TextView required; 
    TextView reqnum; 

    AssessViewHolder(View itemView) { 
     super(itemView); 
     cv = (CardView)itemView.findViewById(R.id.cv); 
     assessName = (TextView)itemView.findViewById(R.id.assessment); 
     pracName = (TextView) itemView.findViewById(R.id.details); 
     required = (TextView) itemView.findViewById(R.id.required); 
     reqnum = (TextView) itemView.findViewById(R.id.reqnum); 

     itemView.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     Context context = v.getContext(); 

     Intent intent = new Intent(context, Skill.class); 
     context.startActivity(intent); 

     String assessName = ((TextView) v.findViewById(R.id.assessment)) 
       .getText().toString(); 
     intent.putExtra(KEY_SKILL, assessName); 

     System.out.println(assessName); 
    } 
} 
+1

的問題是,你正在調用context.startActivity(),然後再附加到intent .... – jpact

回答

1

正如我在你的問題下面的評論中指出,問題是,你在呼喚startActivity數據連接到意圖之前,所以在它onClick方法的末尾移動應該工作

@Override 
public void onClick(View v) { 
    Context context = v.getContext(); 

    Intent intent = new Intent(context, Skill.class); 

    String assessName = ((TextView) v.findViewById(R.id.assessment)) 
      .getText().toString(); 
    intent.putExtra(KEY_SKILL, assessName); 

    System.out.println(assessName); 
    context.startActivity(intent); 
} 
+0

我剛試過這個。那真是太愚蠢了,啊!非常感謝! :) –

+0

不客氣:)很高興它的作品... – jpact

0

你的片段應該調用startActivity與同時發送連接到意圖相關的信息,這似乎是你在做什麼這樣做。如果您的新Activity未收到該信息(尤其是因爲它仍然收到「isnull」值,這是用戶定義的值),您應該調試(和測試)您的值和密鑰被傳入。

+0

我一直在測試打印出來我想發送的字符串的控制檯。它正在控制檯中顯示,所以我認爲一切工作正常。 但是,它並沒有在新的活動中顯示爲TextView。對此有何想法? –

相關問題