Leer archivo java

private static String devuelveContenido( String archivo ) throws FileNotFoundException, IOException
{
     String cadena;
     String resultado = "";
     FileReader f = new FileReader( archivo );
     BufferedReader b = new BufferedReader( f );
     while( ( cadena = b.readLine() ) != null )
     {
         resultado += cadena+"\n";
     }
     b.close();
     return resultado;
}

Demuestra cuando sabes de una Shell en esta página

https://cmdchallenge.com/
Esta web recrea un entorno en el que podemos probar nuestros conocimientos sobre los comandos.
Como era de esperar, la interfaz de usuario ante la que nos encontramos nada más acceder a esta web es extremadamente sencilla, y en la misma se nos irán proponiendo una serie de retos que tendemos que ir resolviendo a base de teclear comandos. Los primeros son sencillos para todos aquellos que tengáis ciertos conocimientos en estas lides, por ejemplo empezaremos con imprimir el popular “hello world” de toda la vida. Sin embargo, a medida que vayamos resolviendo problemas, la dificultad de los mismos irá en aumento.

Custom progressbar drawable 2 XML

<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromDegrees="270"    android:pivotX="50%"    android:pivotY="50%"    android:toDegrees="270" >

    <shape        android:innerRadiusRatio="1000"        android:shape="ring"        android:thicknessRatio="2.0"        android:useLevel="true">

        <rotate            android:fromDegrees="0"            android:pivotX="50%"            android:pivotY="50%"            android:toDegrees="360" />

        <gradient            android:centerColor="#00FF00"            android:endColor="#00FF00"            android:startColor="#00FF00"            android:type="sweep" />

    </shape>


</rotate>

Custom progressbar drawable XML

<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromDegrees="270"    android:pivotX="50%"    android:pivotY="50%"    android:toDegrees="270" >

    
    <shape        android:shape="oval"        android:useLevel="false" >
        <gradient            android:centerY="0.5"            android:endColor="#FA5858"            android:startColor="#0099CC"            android:type="sweep"            android:useLevel="false" />
    </shape>

</rotate>

Leer parámetros en python

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

print "Número de parámetros: ", len(sys.argv)
print "Lista de argumentos: ", sys.argv



python parametros-basico.py -a ALL file1 file2
Número de parámetros:  5
Lista de argumentos:  ['parametros-basico.py', '-a', 'ALL', 'file1', 'file2']

Select en python

introducir, despues de esto, el siguiente código

criterio = raw_input("Ingrese criterio de búsqueda: ")
query = "SELECT b1, b2 FROM b WHERE b2 = '%s'" % criterio
result = run_query(query)
print result

Insertar datos en bbdd python

introducir, despues de esto, el siguiente código

dato = raw_input("Dato: ")
query = "INSERT INTO b (b2) VALUES ('%s')" % dato
run_query(query)

Conectarse a bbdd python

import MySQLdb
 
DB_HOST = 'localhost' 
DB_USER = 'root' 
DB_PASS = 'mysqlroot' 
DB_NAME = 'a' 
 
def run_query(query=''): 
    datos = [DB_HOST, DB_USER, DB_PASS, DB_NAME] 
 
    conn = MySQLdb.connect(*datos) # Conectar a la base de datos 
    cursor = conn.cursor()         # Crear un cursor 
    cursor.execute(query)          # Ejecutar una consulta 
 
    if query.upper().startswith('SELECT'): 
        data = cursor.fetchall()   # Traer los resultados de un select 
    else: 
        conn.commit()              # Hacer efectiva la escritura de datos 
        data = None 
 
    cursor.close()                 # Cerrar el cursor 
    conn.close()                   # Cerrar la conexión 
 
    return data

For en python

Caso 1

for i in [0, 1, 2]:
    print(i, "*", i,"=", i ** 2)

print()

0 * 0 = 0
1 * 1 = 1
2 * 2 = 4

Caso 2

for i in "AMIGO":
    print("Dame una ", i)
print("¡AMIGO!")

Dame una A
Dame una M
Dame una I
Dame una G
Dame una O
¡AMIGO!

Caso 3

for i in range(3):
    print("Hola ", end="")
print()

Hola Hola Hola

Caso 4

print("Comienzo")
cuenta = 0
for i in range(1, 6):
    if i % 2 == 0:
        cuenta = cuenta + 1
print("Desde 1 hasta 5 hay", cuenta, "múltiplos de 2")
Comienzo
Desde 1 hasta 5 hay 2 múltiplos de 2

Meter valores dentro de una cadena python

"Hola {0}. Otra {1} ". format(cadena2, cadena3)

Codigo python para leer y escribir Arduino

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import time
import serial
 
# Iniciando conexión serial
arduinoPort = serial.Serial('/dev/ttyACM1', 9600, timeout=1)
flagCharacter = 'k'
 
# Retardo para establecer la conexión serial
time.sleep(1.8)
arduinoPort.write(flagCharacter)
#getSerialValue = arduinoPort.readline()
#getSerialValue = arduinoPort.read()
getSerialValue = arduinoPort.read(6)
print '\nValor retornado de Arduino: %s' % (getSerialValue)
 
# Cerrando puerto serial
arduinoPort.close()

Cambiar titulo de toolbar de Android

En el método OnCreate():

        getSupportActionBar().setTitle("Inicio");

Poner en lugar de "Inicio" el texto que desees.
Ademas puedes ir cambiándolo dependiendo de si se producen una serie de condiciones que tu desees.

Mantener la pantalla del móvil en horizontal Android

Añade lo siguiente en el manifest .xml:
        android:screenOrientation="portrait"


Ej.:
<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.miapp.miusuario.MainActivity"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
   </application>

Web view en Android

Clase Main


public class MainActivity extends AppCompatActivity {
    public final static String url = "192.168.4.200";
    private WebView mWebView;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // INI AGREGADO        mWebView = (WebView) findViewById(R.id.web_view);
        // Activamos javascript        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        // Url que carga la app (webview)        mWebView.loadUrl("http://"+url);
        // Forzamos el webview para que abra los enlaces internos dentro de la la APP        mWebView.setWebViewClient(new WebViewClient());
        // Forzamos el webview para que abra los enlaces externos en el navegador        //mWebView.setWebViewClient(new MyAppWebViewClient());        // FIN AGREGADO    }
    @Override    // Detectar cuando se presiona el botón de retroceso    public void onBackPressed() {
        if(mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

Clase .java


import android.webkit.WebViewClient;
import android.content.Intent;
import android.net.Uri;
import android.webkit.WebView;
/** * Created by  on 09/01/2017. */public class MyAppWebViewClient extends WebViewClient {
    public final static String url = "192.168.4.200";
    @Override    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // Url base de la APP (al salir de esta url, abre el navegador) poner como se muestra, sin http://        if(Uri.parse(url).getHost().endsWith(url)) {
            return false;
        }
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }
}

main.xml

<WebView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/web_view"/>

Permisos

<uses-permission android:name="android.permission.INTERNET" />

Devolver valor desde una actividad secundaria Android

Actividad Principal

Creamos el siguiente método:
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        if ((requestCode == request_code) && (resultCode == RESULT_OK)){
            data.getDataString() //cogemos los datos que devuelve la segunda actividad
        }
    }
Este método sirve para ejecutar las acciones que se realizará la clase una vez la segunda actividad haya devuelto los datos.
Iniciamos la segunda actividad de tal forma que reciba los datos una vez esta acabe:
int request_code = 1; //declarado como global
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, request_code);

Actividad Secundaria

Devolvemos desde el segundo activity los datos que queramos.
Intent data = new Intent();
data.setData(Uri.parse(cad));
setResult(RESULT_OK, data);
finish();
cad --> es la cadena que devolvemos al activity principal.

Ejemplo, creamos una ListView y el elemento elegido es el que se devuelve:
lvString = (ListView)findViewById(R.id.lv_Strings);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, cargarListView());
lvString.setAdapter(adapter);
        
lvString.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
  long arg3) {
   // TODO Auto-generated method stub
   String cad = (String)lvString.getAdapter().getItem(arg2);
   Intent data = new Intent();
     data.setData(Uri.parse(cad));
     setResult(RESULT_OK, data);
     finish();
  }     
});