Reputation: 752
I am putting three files 1.activity_main.xml ,2.MainActivity.java ,3.strings.xml files ....I am a new app developer having many issues with doing simple stuff with android apps
1.activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="faizsols.com.test.MainActivity">
<TextView
android:text="@string/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="134dp"
android:layout_marginTop="106dp"
android:id="@+id/text1"
android:textSize="30sp" />
<Button
android:text="@string/but1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text1"
android:layout_alignStart="@+id/text1"
android:layout_marginTop="99dp"
android:onClick="rep"
android:id="@+id/but1" />
</RelativeLayout>
2.MainActivity.java
package faizsols.com.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
TextView t1 = (TextView)findViewById(R.string.text1);
Button rpl = (Button)findViewById(R.string.but1);
public void rep(View view) {
t1.setText("I am fine");
}
}
3.strings.xml
<resources>
<string name="app_name">Test</string>
<string name="text1">hello</string>
<string name="but1">Reply</string>
</resources>
Upvotes: 0
Views: 2751
Reputation: 61
I know the question is solved as of now, but I would like to add a problem that you might be facing with the recent version of Android Studio. It seems impossible to set text with TextView. As an alternative, I have been using EditText as it is easy to use and can be called and defined in any function (not only OnCreate).
Edit text can be found in the palette option under 'text' under the design layout and its use is very similar to TextView
EditText txt =(EditText) findViewById(R.id.editText);
txt.setText("This actually works");
Upvotes: 0
Reputation: 156
Changes in MainActivity.class
package faizsols.com.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView t1 = (TextView)findViewById(R.id.text1);
Button rpl = (Button)findViewById(R.id.but1);
rpl .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
t1.setText("I am fine");
}
});
}
Upvotes: 1
Reputation: 113
you have to fetch the id in oncreate() method after the setConteview method called.
package faizsols.com.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
TextView t1;
Button rpl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextView)findViewById(R.id.text1);
rpl = (Button)findViewById(R.id.but1);
}
public void rep(View view) {
t1.setText("I am fine");
}
Upvotes: 0
Reputation: 337
See those lines:
TextView t1 = (TextView)findViewById(R.string.text1);
Button rpl = (Button)findViewById(R.string.but1);
It's wrong. You need to write R.id
, not R.string
.
TextView t1 = (TextView)findViewById(R.id.text1);
Button rpl = (Button)findViewById(R.id.but1);
Use this:
package faizsols.com.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
TextView t1 = (TextView)findViewById(R.id.text1);
Button rpl = (Button)findViewById(R.id.but1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void rep(View view) {
t1.setText("I am fine");
}
}
Upvotes: 0
Reputation: 1892
update your MainActivity
with this code:
package faizsols.com.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
TextView t1;
Button rpl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextView)findViewById(R.id.text1);
rpl = (Button)findViewById(R.id.but1);
}
public void rep(View view) {
t1.setText("I am fine");
}
}
Upvotes: 0
Reputation: 2780
Use this:
package faizsols.com.test;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private TextView t1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// You should initialize in onCreate()
t1 = (TextView)findViewById(R.id.text1);
Button rpl = (Button)findViewById(R.id.but1);
}
public void rep(View view) {
t1.setText("I am fine");
}
Upvotes: 4
Reputation: 2034
Put these lines inside your onCreate below setContentView
TextView t1;
Button rpl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextView)findViewById(R.id.text1);
rpl = (Button)findViewById(R.id.but1);
}
Upvotes: 1