2016-08-26 38 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。对此有何想法? –

相关问题