的setText()不是从另一个活动的onClickListener

问题描述:

工作,我无法弄清楚,为什么我的代码不工作:的setText()不是从另一个活动的onClickListener

第一个活动

public static TextView name_contact; 
public static TextView message_contact; 
public static TextView count_contact; 
public static TextView timestamp_contact; 



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

    final ListView listView = (ListView) findViewById(R.id.listViewConvlist); 
    chatRoomsAdapter = new ChatRoomsAdapter(getApplicationContext(), R.layout.chat_rooms_list_row); 
    listView.setAdapter(chatRoomsAdapter); 

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> arg0, View v, int position, long arg3) 
     { 
      message_contact = (TextView) v.findViewById(R.id.message); 
     } 
    }); 
} 

次活动

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

    ImageButton buttonSend = (ImageButton) findViewById(R.id.imageButton); 
    buttonSend.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      FirstActivity.message_contact.setText("IL N'Y A QUE TOI"); 
     } 
    }); 
} 

因为如果我把下面的代码放在第二活动,它的工作原理!

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

    FirstActivity.message_contact.setText("IL N'Y A QUE TOI"); 

} 

和检查日志的时候,我没有得到任何错误...

+0

您只能找到视图,而不能设置文本。 message_contact =(TextView)v.findViewById(R.id.message); – MeHdi

+0

listView.setAdapter(...)在哪里? – MeHdi

+0

我没有把它列入这篇文章,但这里是我的完整代码:(文章的编辑版本)我设置第二活动 –

我想通了!结果显示虚拟键盘在显示时停止了订单(当我说订单时,我的意思是FirstActivity.message_contact.setText("IL N'Y A QUE TOI");)。

所以我结束/与这段代码发送订单之前隐藏虚拟键盘:

View view = this.getCurrentFocus(); 
if (view != null) { 
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 

并在此之后,该文本被正确设置。

但我不得不说,我不明白为什么代码在显示键盘时不起作用。